@@ -117,7 +117,7 @@ const char *packet_action_name[] = {
117117 "AGENT_SELF_DESTRUCT" ,
118118};
119119
120- void (* my_build_packet )(struct Packet * packet , ushort type , ulong param1 , long x , long y , long z );
120+ void (* my_build_packet )(struct Packet * packet , ushort action , ulong param1 , long x , long y , long z );
121121
122122/******************************************************************************/
123123
@@ -265,7 +265,6 @@ void build_packet(struct Packet *packet, ushort action, ulong param1, long x, lo
265265 packet -> Action = action ;
266266 break ;
267267 case 3 :
268- ingame .UserZoom = 120 ;
269268 packet -> Data = param1 ;
270269 packet -> X = x ;
271270 packet -> Y = y ;
@@ -283,31 +282,133 @@ void build_packet(struct Packet *packet, ushort action, ulong param1, long x, lo
283282 }
284283}
285284
286- void build_packet2 (struct Packet * packet , ushort type , ulong param1 , long x , long y , long z )
285+ void build_packet2 (struct Packet * packet , ushort action , ulong param1 , long x , long y , long z )
287286{
287+ #if 0
288288 asm volatile (
289289 "push %5\n"
290290 "push %4\n"
291291 "call ASM_build_packet2\n"
292292 : : "a" (packet ), "d" (type ), "b" (param1 ), "c" (x ), "g" (y ), "g" (z ));
293+ #endif
294+ ubyte num_params ;
295+
296+ num_params = packet_action_params_count (action );
297+ packet_action_immediate_local_change (1 , action );
298+
299+ switch (num_params )
300+ {
301+ case 1 :
302+ packet -> Data2 = param1 ;
303+ packet -> Action2 = action ;
304+ break ;
305+ case 2 :
306+ packet -> Data2 = param1 ;
307+ packet -> X2 = x ;
308+ packet -> Action2 = action ;
309+ break ;
310+ case 3 :
311+ packet -> Data2 = param1 ;
312+ packet -> X2 = x ;
313+ packet -> Y2 = y ;
314+ packet -> Action2 = action ;
315+ break ;
316+ case 4 :
317+ packet -> Data2 = param1 ;
318+ packet -> X2 = x ;
319+ packet -> Y2 = y ;
320+ packet -> Z2 = z ;
321+ packet -> Action2 = action ;
322+ break ;
323+ default :
324+ break ;
325+ }
293326}
294327
295- void build_packet3 (struct Packet * packet , ushort type , ulong param1 , long x , long y , long z )
328+ void build_packet3 (struct Packet * packet , ushort action , ulong param1 , long x , long y , long z )
296329{
330+ #if 0
297331 asm volatile (
298332 "push %5\n"
299333 "push %4\n"
300334 "call ASM_build_packet3\n"
301335 : : "a" (packet ), "d" (type ), "b" (param1 ), "c" (x ), "g" (y ), "g" (z ));
336+ #endif
337+ ubyte num_params ;
338+
339+ num_params = packet_action_params_count (action );
340+ packet_action_immediate_local_change (2 , action );
341+
342+ switch (num_params )
343+ {
344+ case 1 :
345+ packet -> Data3 = param1 ;
346+ packet -> Action3 = action ;
347+ break ;
348+ case 2 :
349+ packet -> Data3 = param1 ;
350+ packet -> X3 = x ;
351+ packet -> Action3 = action ;
352+ break ;
353+ case 3 :
354+ packet -> Data3 = param1 ;
355+ packet -> X3 = x ;
356+ packet -> Y3 = y ;
357+ packet -> Action3 = action ;
358+ break ;
359+ case 4 :
360+ packet -> Data3 = param1 ;
361+ packet -> X3 = x ;
362+ packet -> Y3 = y ;
363+ packet -> Z3 = z ;
364+ packet -> Action3 = action ;
365+ break ;
366+ default :
367+ break ;
368+ }
302369}
303370
304- void build_packet4 (struct Packet * packet , ushort type , ulong param1 , long x , long y , long z )
371+ void build_packet4 (struct Packet * packet , ushort action , ulong param1 , long x , long y , long z )
305372{
373+ #if 0
306374 asm volatile (
307375 "push %5\n"
308376 "push %4\n"
309377 "call ASM_build_packet4\n"
310378 : : "a" (packet ), "d" (type ), "b" (param1 ), "c" (x ), "g" (y ), "g" (z ));
379+ #endif
380+ ubyte num_params ;
381+
382+ num_params = packet_action_params_count (action );
383+ packet_action_immediate_local_change (3 , action );
384+
385+ switch (num_params )
386+ {
387+ case 1 :
388+ packet -> Data4 = param1 ;
389+ packet -> Action4 = action ;
390+ break ;
391+ case 2 :
392+ packet -> Data4 = param1 ;
393+ packet -> X4 = x ;
394+ packet -> Action4 = action ;
395+ break ;
396+ case 3 :
397+ packet -> Data4 = param1 ;
398+ packet -> X4 = x ;
399+ packet -> Y4 = y ;
400+ packet -> Action4 = action ;
401+ break ;
402+ case 4 :
403+ packet -> Data4 = param1 ;
404+ packet -> X4 = x ;
405+ packet -> Y4 = y ;
406+ packet -> Z4 = z ;
407+ packet -> Action4 = action ;
408+ break ;
409+ default :
410+ break ;
411+ }
311412}
312413
313414void PacketRecord_Close (void )
0 commit comments