From ae364d4d295f93b42ccdbd5f9e91bd26227cf9f1 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Wed, 27 Aug 2008 19:50:33 +0000 Subject: [PATCH] scoreboard fixed --- src/engine/e_client_interface.h | 3 +++ src/engine/e_ringbuffer.h | 4 ++-- src/game/client/components/binds.cpp | 5 +---- src/game/client/components/chat.cpp | 5 ----- src/game/client/components/console.cpp | 5 ++--- src/game/client/components/console.hpp | 13 +++--------- src/game/client/components/controls.cpp | 7 +------ src/game/client/components/scoreboard.cpp | 24 ++++++++++++++++++++++- src/game/client/components/scoreboard.hpp | 8 ++++++++ src/game/client/gameclient.cpp | 3 +++ src/game/client/gc_hooks.cpp | 2 -- 11 files changed, 46 insertions(+), 33 deletions(-) diff --git a/src/engine/e_client_interface.h b/src/engine/e_client_interface.h index d82a27d69..7ec5c93d4 100644 --- a/src/engine/e_client_interface.h +++ b/src/engine/e_client_interface.h @@ -14,6 +14,9 @@ extern "C" { #include "e_if_msg.h" #include "e_if_modc.h" +#include "e_console.h" +#include "e_config.h" + #ifdef __cplusplus } #endif diff --git a/src/engine/e_ringbuffer.h b/src/engine/e_ringbuffer.h index 7de5b01ec..40043492a 100644 --- a/src/engine/e_ringbuffer.h +++ b/src/engine/e_ringbuffer.h @@ -1,7 +1,7 @@ #ifndef _RINGBUFFER_H #define _RINGBUFFER_H -typedef struct +typedef struct RINGBUFFER { /* what you need */ struct RBITEM_t *next_alloc; @@ -10,7 +10,7 @@ typedef struct struct RBITEM_t *last; void *memory; int size; -} RINGBUFFER; +} RINGBUFFER; RINGBUFFER *ringbuf_init(void *memory, int size); void *ringbuf_allocate(RINGBUFFER *rb, int size); diff --git a/src/game/client/components/binds.cpp b/src/game/client/components/binds.cpp index 5d033ad4c..05165e5ea 100644 --- a/src/game/client/components/binds.cpp +++ b/src/game/client/components/binds.cpp @@ -1,7 +1,4 @@ -extern "C" { - #include -} - +#include #include "binds.hpp" BINDS::BINDS() diff --git a/src/game/client/components/chat.cpp b/src/game/client/components/chat.cpp index 2e4812151..1bdc7e85d 100644 --- a/src/game/client/components/chat.cpp +++ b/src/game/client/components/chat.cpp @@ -1,15 +1,10 @@ #include // strcmp -extern "C" { - #include -} - #include #include #include #include -//#include #include #include "chat.hpp" diff --git a/src/game/client/components/console.cpp b/src/game/client/components/console.cpp index a67a1138e..8b1abfaad 100644 --- a/src/game/client/components/console.cpp +++ b/src/game/client/components/console.cpp @@ -3,10 +3,9 @@ #include +#include + extern "C" { - #include - #include - #include #include #include } diff --git a/src/game/client/components/console.hpp b/src/game/client/components/console.hpp index 8c6a9c727..9b60185cb 100644 --- a/src/game/client/components/console.hpp +++ b/src/game/client/components/console.hpp @@ -1,11 +1,4 @@ -extern "C" { - #include - #include - #include - #include - #include -} - +#include #include class CONSOLE : public COMPONENT @@ -14,11 +7,11 @@ class CONSOLE : public COMPONENT { public: char history_data[65536]; - RINGBUFFER *history; + struct RINGBUFFER *history; char *history_entry; char backlog_data[65536]; - RINGBUFFER *backlog; + struct RINGBUFFER *backlog; LINEINPUT input; diff --git a/src/game/client/components/controls.cpp b/src/game/client/components/controls.cpp index 9f0ba30ad..886542e2c 100644 --- a/src/game/client/components/controls.cpp +++ b/src/game/client/components/controls.cpp @@ -1,9 +1,4 @@ -extern "C" { - #include - #include - #include -} - +#include #include #include #include diff --git a/src/game/client/components/scoreboard.cpp b/src/game/client/components/scoreboard.cpp index 075f249e6..5823ab8da 100644 --- a/src/game/client/components/scoreboard.cpp +++ b/src/game/client/components/scoreboard.cpp @@ -1,5 +1,4 @@ #include - #include #include #include @@ -8,6 +7,27 @@ #include #include "scoreboard.hpp" + +SCOREBOARD::SCOREBOARD() +{ + on_reset(); +} + +void SCOREBOARD::con_key_scoreboard(void *result, void *user_data) +{ + ((SCOREBOARD *)user_data)->active = console_arg_int(result, 0) != 0; +} + +void SCOREBOARD::on_reset() +{ + active = false; +} + +void SCOREBOARD::on_init() +{ + MACRO_REGISTER_COMMAND("+scoreboard", "", con_key_scoreboard, this); +} + void SCOREBOARD::render_goals(float x, float y, float w) { float h = 50.0f; @@ -204,6 +224,8 @@ void SCOREBOARD::render_scoreboard(float x, float y, float w, int team, const ch void SCOREBOARD::on_render() { + if(!active) + return; // TODO: repair me /* diff --git a/src/game/client/components/scoreboard.hpp b/src/game/client/components/scoreboard.hpp index b1913cec9..ba5b0a3d0 100644 --- a/src/game/client/components/scoreboard.hpp +++ b/src/game/client/components/scoreboard.hpp @@ -5,7 +5,15 @@ class SCOREBOARD : public COMPONENT void render_goals(float x, float y, float w); void render_spectators(float x, float y, float w); void render_scoreboard(float x, float y, float w, int team, const char *title); + + static void con_key_scoreboard(void *result, void *user_data); + + bool active; + public: + SCOREBOARD(); + virtual void on_reset(); + virtual void on_init(); virtual void on_render(); }; diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index 0222b6b91..406822978 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -21,6 +21,7 @@ #include "components/debughud.hpp" #include "components/controls.hpp" #include "components/effects.hpp" +#include "components/scoreboard.hpp" GAMECLIENT gameclient; @@ -40,6 +41,7 @@ static HUD hud; static DEBUGHUD debughud; static CONTROLS controls; static EFFECTS effects; +static SCOREBOARD scoreboard; static PLAYERS players; static ITEMS items; @@ -85,6 +87,7 @@ void GAMECLIENT::on_init() all.add(chat); all.add(&broadcast); all.add(&debughud); + all.add(&scoreboard); all.add(&motd); all.add(menus); all.add(console); diff --git a/src/game/client/gc_hooks.cpp b/src/game/client/gc_hooks.cpp index bef6f5086..4d0be6861 100644 --- a/src/game/client/gc_hooks.cpp +++ b/src/game/client/gc_hooks.cpp @@ -3,9 +3,7 @@ #include extern "C" { - #include #include - #include }; #include