diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-02-10 15:32:30 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-02-10 15:32:30 +0000 |
| commit | 294cbe18c17cd20f70f965e7f89a3250ef39b990 (patch) | |
| tree | db942402bd39bfb8336e2a2d134f96f2ad5b2ab1 /src/game/client/gc_hooks.cpp | |
| parent | acffe66ebe63f3ecc970db0feab33a6e85a7d1f4 (diff) | |
| download | zcatch-294cbe18c17cd20f70f965e7f89a3250ef39b990.tar.gz zcatch-294cbe18c17cd20f70f965e7f89a3250ef39b990.zip | |
done some more latency work. added the extra message for projectiles to reduce latency
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; |