Skip to content

Commit 951b944

Browse files
committed
swars: Remade all build_packet() variants
1 parent 097c961 commit 951b944

File tree

2 files changed

+111
-10
lines changed

2 files changed

+111
-10
lines changed

src/packet.c

Lines changed: 106 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

313414
void PacketRecord_Close(void)

src/packet.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,15 +144,15 @@ struct Packet
144144
#pragma pack()
145145
/******************************************************************************/
146146
extern struct Packet packets[8];
147-
extern void (*my_build_packet)(struct Packet *packet, ushort type, ulong param1, long x, long y, long z);
147+
extern void (*my_build_packet)(struct Packet *packet, ushort action, ulong param1, long x, long y, long z);
148148

149149
const char * get_packet_action_name(ushort atype);
150150
const char * get_packet_action_result_text(short result);
151151

152-
void build_packet(struct Packet *packet, ushort type, ulong param1, long x, long y, long z);
153-
void build_packet2(struct Packet *packet, ushort type, ulong param1, long x, long y, long z);
154-
void build_packet3(struct Packet *packet, ushort type, ulong param1, long x, long y, long z);
155-
void build_packet4(struct Packet *packet, ushort type, ulong param1, long x, long y, long z);
152+
void build_packet(struct Packet *packet, ushort action, ulong param1, long x, long y, long z);
153+
void build_packet2(struct Packet *packet, ushort action, ulong param1, long x, long y, long z);
154+
void build_packet3(struct Packet *packet, ushort action, ulong param1, long x, long y, long z);
155+
void build_packet4(struct Packet *packet, ushort action, ulong param1, long x, long y, long z);
156156

157157
void PacketRecord_Close(void);
158158
void PacketRecord_OpenWrite(void);

0 commit comments

Comments
 (0)