diff options
Diffstat (limited to 'src/game/client/gc_hooks.cpp')
| -rw-r--r-- | src/game/client/gc_hooks.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/game/client/gc_hooks.cpp b/src/game/client/gc_hooks.cpp index f04af5cb..4ab5cf6a 100644 --- a/src/game/client/gc_hooks.cpp +++ b/src/game/client/gc_hooks.cpp @@ -394,6 +394,15 @@ extern "C" void modc_statechange(int state, int old) } } + +obj_projectile extraproj_projectiles[MAX_EXTRA_PROJECTILES]; +int extraproj_num; + +void extraproj_reset() +{ + extraproj_num = 0; +} + extern "C" void modc_message(int msg) { if(msg == MSG_CHAT) @@ -409,6 +418,23 @@ extern "C" void modc_message(int msg) else snd_play(CHN_GUI, data->sounds[SOUND_CHAT_SERVER].sounds[0].id, 0); } + else if(msg == MSG_EXTRA_PROJECTILE) + { + int num = msg_unpack_int(); + + for(int k = 0; k < num; k++) + { + obj_projectile proj; + for(unsigned i = 0; i < sizeof(obj_projectile)/sizeof(int); i++) + ((int *)&proj)[i] = msg_unpack_int(); + + if(extraproj_num != MAX_EXTRA_PROJECTILES) + { + extraproj_projectiles[extraproj_num] = proj; + extraproj_num++; + } + } + } else if(msg == MSG_SETINFO) { int cid = msg_unpack_int(); @@ -487,8 +513,8 @@ extern "C" void modc_connected() //tilemap_init(); chat_reset(); - particle_reset(); + extraproj_reset(); clear_object_pointers(); last_new_predicted_tick = -1; |