diff --git a/src/engine/client/client.cpp b/src/engine/client/client.cpp index c8c5da83b..6e01c0053 100644 --- a/src/engine/client/client.cpp +++ b/src/engine/client/client.cpp @@ -157,7 +157,7 @@ float client_localtime() return (time_get()-local_start_time)/(float)(time_freq()); } -void *snap_get_item(int snapid, int index, snap_item *item) +const void *snap_get_item(int snapid, int index, snap_item *item) { dbg_assert(snapid >= 0 && snapid < NUM_SNAPSHOT_TYPES, "invalid snapid"); snapshot::item *i = snapshots[snapid]->snap->get_item(index); @@ -166,6 +166,18 @@ void *snap_get_item(int snapid, int index, snap_item *item) return (void *)i->data(); } +const void *snap_find_item(int snapid, int type, int id) +{ + // TODO: linear search. should be fixed. + for(int i = 0; i < snapshots[snapid]->snap->num_items; i++) + { + snapshot::item *itm = snapshots[snapid]->snap->get_item(i); + if(itm->type() == type && itm->id() == id) + return (void *)itm->data(); + } + return 0x0; +} + int snap_num_items(int snapid) { dbg_assert(snapid >= 0 && snapid < NUM_SNAPSHOT_TYPES, "invalid snapid"); @@ -202,17 +214,6 @@ float client_frametime() return frametime; } -void *snap_find_item(int snapid, int type, int id) -{ - // TODO: linear search. should be fixed. - for(int i = 0; i < snapshots[snapid]->snap->num_items; i++) - { - snapshot::item *itm = snapshots[snapid]->snap->get_item(i); - if(itm->type() == type && itm->id() == id) - return (void *)itm->data(); - } - return 0x0; -} int menu_loop(); // TODO: what is this? diff --git a/src/engine/interface.h b/src/engine/interface.h index 960be724b..64ff202ed 100644 --- a/src/engine/interface.h +++ b/src/engine/interface.h @@ -490,7 +490,7 @@ int snap_num_items(int snapid); Returns: Returns a pointer to the item if it exists, otherwise NULL. */ -void *snap_get_item(int snapid, int index, snap_item *item); +const void *snap_get_item(int snapid, int index, snap_item *item); /* Function: snap_find_item @@ -506,7 +506,7 @@ void *snap_get_item(int snapid, int index, snap_item *item); Returns: Returns a pointer to the item if it exists, otherwise NULL. */ -void *snap_find_item(int snapid, int type, int id); +const void *snap_find_item(int snapid, int type, int id); /* Function: snap_input diff --git a/src/game/client/game_client.cpp b/src/game/client/game_client.cpp index d4969798b..44d1f6dc6 100644 --- a/src/game/client/game_client.cpp +++ b/src/game/client/game_client.cpp @@ -471,7 +471,7 @@ void modc_newsnapshot() for(int i = 0; i < num; i++) { snap_item item; - void *data = snap_get_item(SNAP_CURRENT, i, &item); + const void *data = snap_get_item(SNAP_CURRENT, i, &item); if(item.type == EVENT_DAMAGEINDICATION) { @@ -602,7 +602,7 @@ void modc_newsnapshot() } } -static void render_projectile(obj_projectile *prev, obj_projectile *current, int itemid) +static void render_projectile(const obj_projectile *prev, const obj_projectile *current, int itemid) { gfx_texture_set(data->images[IMAGE_GAME].id); gfx_quads_begin(); @@ -627,7 +627,7 @@ static void render_projectile(obj_projectile *prev, obj_projectile *current, int gfx_quads_end(); } -static void render_powerup(obj_powerup *prev, obj_powerup *current) +static void render_powerup(const obj_powerup *prev, const obj_powerup *current) { gfx_texture_set(data->images[IMAGE_GAME].id); gfx_quads_begin(); @@ -670,7 +670,7 @@ static void render_powerup(obj_powerup *prev, obj_powerup *current) gfx_quads_end(); } -static void render_flag(obj_flag *prev, obj_flag *current) +static void render_flag(const obj_flag *prev, const obj_flag *current) { float angle = 0.0f; float size = 64.0f; @@ -877,7 +877,7 @@ static void draw_round_rect(float x, float y, float w, float h, float r) gfx_quads_drawTL(x+w-r, y+r, r, h-r*2); // right } -static void render_player(obj_player *prev, obj_player *player) +static void render_player(const obj_player *prev, const obj_player *player) { if(player->health < 0) // dont render dead players return; @@ -1324,7 +1324,7 @@ void modc_render() for(int i = 0; i < num; i++) { snap_item item; - void *data = snap_get_item(SNAP_CURRENT, i, &item); + const void *data = snap_get_item(SNAP_CURRENT, i, &item); if(item.type == OBJTYPE_PLAYER) { @@ -1334,7 +1334,7 @@ void modc_render() local_player = player; local_player_pos = vec2(player->x, player->y); - void *p = snap_find_item(SNAP_PREV, item.type, item.id); + const void *p = snap_find_item(SNAP_PREV, item.type, item.id); if(p) local_player_pos = mix(vec2(((obj_player *)p)->x, ((obj_player *)p)->y), local_player_pos, client_intratick()); } @@ -1414,34 +1414,34 @@ void modc_render() for(int i = 0; i < num; i++) { snap_item item; - void *data = snap_get_item(SNAP_CURRENT, i, &item); + const void *data = snap_get_item(SNAP_CURRENT, i, &item); if(item.type == OBJTYPE_PLAYER) { - void *prev = snap_find_item(SNAP_PREV, item.type, item.id); + const void *prev = snap_find_item(SNAP_PREV, item.type, item.id); if(prev) { - client_datas[((obj_player *)data)->clientid].team = ((obj_player *)data)->team; - render_player((obj_player *)prev, (obj_player *)data); + client_datas[((const obj_player *)data)->clientid].team = ((const obj_player *)data)->team; + render_player((const obj_player *)prev, (const obj_player *)data); } } else if(item.type == OBJTYPE_PROJECTILE) { - void *prev = snap_find_item(SNAP_PREV, item.type, item.id); + const void *prev = snap_find_item(SNAP_PREV, item.type, item.id); if(prev) - render_projectile((obj_projectile *)prev, (obj_projectile *)data, item.id); + render_projectile((const obj_projectile *)prev, (const obj_projectile *)data, item.id); } else if(item.type == OBJTYPE_POWERUP) { - void *prev = snap_find_item(SNAP_PREV, item.type, item.id); + const void *prev = snap_find_item(SNAP_PREV, item.type, item.id); if(prev) - render_powerup((obj_powerup *)prev, (obj_powerup *)data); + render_powerup((const obj_powerup *)prev, (const obj_powerup *)data); } else if(item.type == OBJTYPE_FLAG) { - void *prev = snap_find_item(SNAP_PREV, item.type, item.id); + const void *prev = snap_find_item(SNAP_PREV, item.type, item.id); if (prev) - render_flag((obj_flag *)prev, (obj_flag *)data); + render_flag((const obj_flag *)prev, (const obj_flag *)data); } } @@ -1670,11 +1670,11 @@ void modc_render() for(int i = 0; i < num; i++) { snap_item item; - void *data = snap_get_item(SNAP_CURRENT, i, &item); + const void *data = snap_get_item(SNAP_CURRENT, i, &item); if(item.type == OBJTYPE_PLAYER) { - obj_player *player = (obj_player *)data; + const obj_player *player = (const obj_player *)data; if(player) { char buf[128]; @@ -1732,11 +1732,11 @@ void modc_render() for(int i = 0; i < num; i++) { snap_item item; - void *data = snap_get_item(SNAP_CURRENT, i, &item); + const void *data = snap_get_item(SNAP_CURRENT, i, &item); if(item.type == OBJTYPE_PLAYER) { - obj_player *player = (obj_player *)data; + const obj_player *player = (const obj_player *)data; if(player && player->team >= 0 && player->team < 2) { teamscore[player->team] += player->score; @@ -1762,11 +1762,11 @@ void modc_render() for(int i = 0; i < num; i++) { snap_item item; - void *data = snap_get_item(SNAP_CURRENT, i, &item); + const void *data = snap_get_item(SNAP_CURRENT, i, &item); if(item.type == OBJTYPE_PLAYER) { - obj_player *player = (obj_player *)data; + const obj_player *player = (const obj_player *)data; if(player && player->team >= 0 && player->team < 2) { sprintf(buf, "%4d", player->score);