- fixed the messed up parameter order of OnEvent.

This should serve as a textbook example why passing around indices is a very, very bad idea!
This commit is contained in:
Christoph Oelckers 2020-11-01 17:57:40 +01:00
parent c1b5b17541
commit de92287d0b
15 changed files with 100 additions and 102 deletions

View file

@ -182,7 +182,7 @@ void checkavailweapon(struct player_struct* player)
{ {
SetGameVarID(g_iWorksLikeVarID, -1, player->GetActor(), snum); SetGameVarID(g_iWorksLikeVarID, -1, player->GetActor(), snum);
} }
OnEvent(EVENT_CHANGEWEAPON, snum, player->i, -1); OnEvent(EVENT_CHANGEWEAPON, snum, player->GetActor(), -1);
} }
player->okickback_pic = player->kickback_pic = 0; player->okickback_pic = player->kickback_pic = 0;

View file

@ -256,7 +256,7 @@ void addweapon_d(struct player_struct *p, int weapon)
SetGameVarID(g_iWorksLikeVarID, -1, snum, p->GetActor()); SetGameVarID(g_iWorksLikeVarID, -1, snum, p->GetActor());
} }
SetGameVarID(g_iReturnVarID, 0, snum, -1); SetGameVarID(g_iReturnVarID, 0, snum, -1);
OnEvent(EVENT_CHANGEWEAPON, p->i, snum, -1); OnEvent(EVENT_CHANGEWEAPON, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, snum) == 0)
{ {
p->curr_weapon = weapon; p->curr_weapon = weapon;

View file

@ -4010,7 +4010,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
} }
} }
void fakebubbaspawn(DDukeActor *g_i, int g_p) void fakebubbaspawn(DDukeActor *actor, int g_p)
{ {
fakebubba_spawn++; fakebubba_spawn++;
switch (fakebubba_spawn) switch (fakebubba_spawn)
@ -4018,16 +4018,16 @@ void fakebubbaspawn(DDukeActor *g_i, int g_p)
default: default:
break; break;
case 1: case 1:
spawn(g_i, PIG); spawn(actor, PIG);
break; break;
case 2: case 2:
spawn(g_i, MINION); spawn(actor, MINION);
break; break;
case 3: case 3:
spawn(g_i, CHEER); spawn(actor, CHEER);
break; break;
case 4: case 4:
spawn(g_i, VIXEN); spawn(actor, VIXEN);
operateactivators(666, ps[g_p].GetActor()->GetIndex()); operateactivators(666, ps[g_p].GetActor()->GetIndex());
break; break;
} }

View file

@ -242,7 +242,7 @@ static bool cheatInventory(int player)
auto invGet = [=](int defvalue, int evtype, int16_t &dest) auto invGet = [=](int defvalue, int evtype, int16_t &dest)
{ {
SetGameVarID(g_iReturnVarID, defvalue, -1, player); SetGameVarID(g_iReturnVarID, defvalue, -1, player);
OnEvent(evtype, -1, player, -1); OnEvent(evtype, player, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, player) >= 0) if (GetGameVarID(g_iReturnVarID, -1, player) >= 0)
{ {
dest = GetGameVarID(g_iReturnVarID, -1, player); dest = GetGameVarID(g_iReturnVarID, -1, player);

View file

@ -82,8 +82,8 @@ bool spawnweapondebris_d(int picnum, int dnum);
bool spawnweapondebris_r(int picnum, int dnum); bool spawnweapondebris_r(int picnum, int dnum);
void respawnhitag_d(DDukeActor* g_sp); void respawnhitag_d(DDukeActor* g_sp);
void respawnhitag_r(DDukeActor* g_sp); void respawnhitag_r(DDukeActor* g_sp);
void checktimetosleep_d(DDukeActor* g_i); void checktimetosleep_d(DDukeActor* actor);
void checktimetosleep_r(DDukeActor* g_i); void checktimetosleep_r(DDukeActor* actor);
void move_d(DDukeActor* i, int g_p, int g_x); void move_d(DDukeActor* i, int g_p, int g_x);
void move_r(DDukeActor* i, int g_p, int g_x); void move_r(DDukeActor* i, int g_p, int g_x);
int spawn_d(int j, int pn); int spawn_d(int j, int pn);

View file

@ -95,10 +95,10 @@ struct Dispatcher
void (*guts)(DDukeActor* s, short gtype, short n, short p); void (*guts)(DDukeActor* s, short gtype, short n, short p);
DDukeActor* (*ifhitsectors)(int sectnum); DDukeActor* (*ifhitsectors)(int sectnum);
int (*ifhitbyweapon)(DDukeActor* sectnum); int (*ifhitbyweapon)(DDukeActor* sectnum);
void (*fall)(DDukeActor* g_i, int g_p); void (*fall)(DDukeActor* actor, int g_p);
bool (*spawnweapondebris)(int picnum, int dnum); bool (*spawnweapondebris)(int picnum, int dnum);
void (*respawnhitag)(DDukeActor* g_sp); void (*respawnhitag)(DDukeActor* g_sp);
void (*checktimetosleep)(DDukeActor* g_i); void (*checktimetosleep)(DDukeActor* actor);
void (*move)(DDukeActor* i, int g_p, int g_x); void (*move)(DDukeActor* i, int g_p, int g_x);
int (*spawn)(int j, int pn); int (*spawn)(int j, int pn);

View file

@ -297,4 +297,5 @@ inline int hitasprite(DDukeActor* actor, DDukeActor** hit)
else *hit = nullptr; else *hit = nullptr;
return dist; return dist;
} }
END_DUKE_NS END_DUKE_NS

View file

@ -101,7 +101,7 @@ void check_fta_sounds_r(DDukeActor* i);
int dodge(DDukeActor*); int dodge(DDukeActor*);
void alterang(int ang, DDukeActor* actor, int g_p); void alterang(int ang, DDukeActor* actor, int g_p);
void fall_common(DDukeActor* g_i, int g_p, int JIBS6, int DRONE, int BLOODPOOL, int SHOTSPARK1, int squished, int thud, int(*fallspecial)(DDukeActor*, int)); void fall_common(DDukeActor* actor, int g_p, int JIBS6, int DRONE, int BLOODPOOL, int SHOTSPARK1, int squished, int thud, int(*fallspecial)(DDukeActor*, int));
void checkavailweapon(struct player_struct* p); void checkavailweapon(struct player_struct* p);
void deletesprite(DDukeActor* num); void deletesprite(DDukeActor* num);
void addammo(int weapon, struct player_struct* p, int amount); void addammo(int weapon, struct player_struct* p, int amount);
@ -175,7 +175,7 @@ void execute(DDukeActor* s, int p, int d);
void makeitfall(DDukeActor* s); void makeitfall(DDukeActor* s);
int furthestangle(DDukeActor* snum, int angDiv); int furthestangle(DDukeActor* snum, int angDiv);
void getglobalz(DDukeActor* s); void getglobalz(DDukeActor* s);
void OnEvent(int id, int pnum = -1, int snum = -1, int dist = -1); void OnEvent(int id, int pnum = -1, DDukeActor* snum = nullptr, int dist = -1);
short EGS(short whatsect, int s_x, int s_y, int s_z, short s_pn, signed char s_s, signed char s_xr, signed char s_yr, short s_a, short s_ve, int s_zv, short s_ow, signed char s_ss); short EGS(short whatsect, int s_x, int s_y, int s_z, short s_pn, signed char s_s, signed char s_xr, signed char s_yr, short s_a, short s_ve, int s_zv, short s_ow, signed char s_ss);
void ceilingglass(int snum, int sectnum, int cnt); void ceilingglass(int snum, int sectnum, int cnt);

View file

@ -68,11 +68,10 @@ enum playeraction_t {
struct ParseState struct ParseState
{ {
int g_i, g_p; int g_p;
int g_x; int g_x;
int* g_t; int* g_t;
uint8_t killit_flag; uint8_t killit_flag;
spritetype* g_sp;
DDukeActor *g_ac; DDukeActor *g_ac;
int* insptr; int* insptr;
Collision coll; Collision coll;
@ -83,10 +82,10 @@ struct ParseState
int furthestcanseepoint(DDukeActor* i, DDukeActor* ts, int* dax, int* day); int furthestcanseepoint(DDukeActor* i, DDukeActor* ts, int* dax, int* day);
bool ifsquished(DDukeActor* i, int p); bool ifsquished(DDukeActor* i, int p);
void fakebubbaspawn(DDukeActor* g_i, int g_p); void fakebubbaspawn(DDukeActor* actor, int g_p);
void tearitup(int sect); void tearitup(int sect);
void destroyit(DDukeActor* actor); void destroyit(DDukeActor* actor);
void mamaspawn(DDukeActor* g_i); void mamaspawn(DDukeActor* actor);
void forceplayerangle(int snum); void forceplayerangle(int snum);
bool killthesprite = false; bool killthesprite = false;
@ -2552,7 +2551,7 @@ int ParseState::parse(void)
/* case 74: /* case 74:
insptr++; insptr++;
getglobalz(g_i); getglobalz(g_ac);
parseifelse( (( g_ac->floorz - g_ac->ceilingz ) >> 8 ) >= *insptr); parseifelse( (( g_ac->floorz - g_ac->ceilingz ) >> 8 ) >= *insptr);
break; break;
*/ */
@ -3824,7 +3823,7 @@ quit:
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void OnEvent(int iEventID, int p, int i, int x) void OnEvent(int iEventID, int p, DDukeActor *actor, int x)
{ {
char done; char done;
@ -3839,12 +3838,10 @@ void OnEvent(int iEventID, int p, int i, int x)
} }
ParseState s; ParseState s;
s.g_i = i; // current sprite ID
s.g_p = p; /// current player ID s.g_p = p; /// current player ID
s.g_x = x; // ? s.g_x = x; // ?
s.g_sp = &sprite[i]; s.g_ac = actor;
s.g_ac = &hittype[i]; s.g_t = actor->temp_data;
s.g_t = &hittype[i].temp_data[0];
s.insptr = &ScriptCode[apScriptGameEvent[iEventID]]; s.insptr = &ScriptCode[apScriptGameEvent[iEventID]];

View file

@ -55,7 +55,7 @@ static InputPacket loc; // input accumulation buffer.
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void hud_input(int snum) void hud_input(int plnum)
{ {
int i, k; int i, k;
uint8_t dainv; uint8_t dainv;
@ -63,10 +63,10 @@ void hud_input(int snum)
short unk; short unk;
unk = 0; unk = 0;
p = &ps[snum]; p = &ps[plnum];
i = p->aim_mode; i = p->aim_mode;
p->aim_mode = !PlayerInput(snum, SB_AIMMODE); p->aim_mode = !PlayerInput(plnum, SB_AIMMODE);
if (p->aim_mode < i) if (p->aim_mode < i)
p->sync.actions |= SB_CENTERVIEW; p->sync.actions |= SB_CENTERVIEW;
@ -75,7 +75,7 @@ void hud_input(int snum)
if (isRR()) if (isRR())
{ {
if (PlayerInput(snum, SB_QUICK_KICK) && p->last_pissed_time == 0) if (PlayerInput(plnum, SB_QUICK_KICK) && p->last_pissed_time == 0)
{ {
if (!isRRRA() || p->GetActor()->s.extra > 0) if (!isRRRA() || p->GetActor()->s.extra > 0)
{ {
@ -93,21 +93,21 @@ void hud_input(int snum)
} }
else else
{ {
if (PlayerInput(snum, SB_QUICK_KICK) && p->quick_kick == 0 && (p->curr_weapon != KNEE_WEAPON || p->kickback_pic == 0)) if (PlayerInput(plnum, SB_QUICK_KICK) && p->quick_kick == 0 && (p->curr_weapon != KNEE_WEAPON || p->kickback_pic == 0))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_QUICKKICK, -1, snum, -1); OnEvent(EVENT_QUICKKICK, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0)
{ {
p->quick_kick = 14; p->quick_kick = 14;
if (!p->quick_kick_msg && snum == screenpeek) FTA(QUOTE_MIGHTY_FOOT, p); if (!p->quick_kick_msg && plnum == screenpeek) FTA(QUOTE_MIGHTY_FOOT, p);
p->quick_kick_msg = true; p->quick_kick_msg = true;
} }
} }
} }
if (!PlayerInput(snum, SB_QUICK_KICK)) p->quick_kick_msg = false; if (!PlayerInput(plnum, SB_QUICK_KICK)) p->quick_kick_msg = false;
if (!PlayerInputBits(snum, SB_INTERFACE_BITS)) if (!PlayerInputBits(plnum, SB_INTERFACE_BITS))
p->interface_toggle_flag = 0; p->interface_toggle_flag = 0;
else if (p->interface_toggle_flag == 0) else if (p->interface_toggle_flag == 0)
{ {
@ -118,21 +118,21 @@ void hud_input(int snum)
if (p->GetActor()->s.extra <= 0) return; if (p->GetActor()->s.extra <= 0) return;
// Activate an inventory item. This just forwards to the other inventory bits. If the inventory selector was taken out of the playsim this could be removed. // Activate an inventory item. This just forwards to the other inventory bits. If the inventory selector was taken out of the playsim this could be removed.
if (PlayerInput(snum, SB_INVUSE) && p->newowner == -1) if (PlayerInput(plnum, SB_INVUSE) && p->newowner == -1)
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_INVENTORY, -1, snum, -1); OnEvent(EVENT_INVENTORY, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0)
{ {
if (p->inven_icon > ICON_NONE && p->inven_icon <= ICON_HEATS) PlayerSetItemUsed(snum, p->inven_icon); if (p->inven_icon > ICON_NONE && p->inven_icon <= ICON_HEATS) PlayerSetItemUsed(plnum, p->inven_icon);
} }
} }
if (!isRR() && PlayerUseItem(snum, ICON_HEATS)) if (!isRR() && PlayerUseItem(plnum, ICON_HEATS))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_USENIGHTVISION, -1, snum, -1); OnEvent(EVENT_USENIGHTVISION, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0 && p->heat_amount > 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0 && p->heat_amount > 0)
{ {
p->heat_on = !p->heat_on; p->heat_on = !p->heat_on;
setpal(p); setpal(p);
@ -142,11 +142,11 @@ void hud_input(int snum)
} }
} }
if (PlayerUseItem(snum, ICON_STEROIDS)) if (PlayerUseItem(plnum, ICON_STEROIDS))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_USESTEROIDS, -1, snum, -1); OnEvent(EVENT_USESTEROIDS, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0)
{ {
if (p->steroids_amount == 400) if (p->steroids_amount == 400)
{ {
@ -159,11 +159,11 @@ void hud_input(int snum)
return; return;
} }
if (PlayerInput(snum, SB_INVPREV) || PlayerInput(snum, SB_INVNEXT)) if (PlayerInput(plnum, SB_INVPREV) || PlayerInput(plnum, SB_INVNEXT))
{ {
p->invdisptime = 26 * 2; p->invdisptime = 26 * 2;
if (PlayerInput(snum, SB_INVNEXT)) k = 1; if (PlayerInput(plnum, SB_INVNEXT)) k = 1;
else k = 0; else k = 0;
dainv = p->inven_icon; dainv = p->inven_icon;
@ -225,17 +225,17 @@ void hud_input(int snum)
else dainv = 0; else dainv = 0;
// These events force us to keep the inventory selector in the playsim as opposed to the UI where it really belongs. // These events force us to keep the inventory selector in the playsim as opposed to the UI where it really belongs.
if (PlayerInput(snum, SB_INVPREV)) if (PlayerInput(plnum, SB_INVPREV))
{ {
SetGameVarID(g_iReturnVarID, dainv, -1, snum); SetGameVarID(g_iReturnVarID, dainv, -1, plnum);
OnEvent(EVENT_INVENTORYLEFT, -1, snum, -1); OnEvent(EVENT_INVENTORYLEFT, plnum, nullptr, -1);
dainv = GetGameVarID(g_iReturnVarID, -1, snum); dainv = GetGameVarID(g_iReturnVarID, -1, plnum);
} }
if (PlayerInput(snum, SB_INVNEXT)) if (PlayerInput(plnum, SB_INVNEXT))
{ {
SetGameVarID(g_iReturnVarID, dainv, -1, snum); SetGameVarID(g_iReturnVarID, dainv, -1, plnum);
OnEvent(EVENT_INVENTORYRIGHT, -1, snum, -1); OnEvent(EVENT_INVENTORYRIGHT, plnum, nullptr, -1);
dainv = GetGameVarID(g_iReturnVarID, -1, snum); dainv = GetGameVarID(g_iReturnVarID, -1, plnum);
} }
p->inven_icon = dainv; p->inven_icon = dainv;
// Someone must have really hated constant data, doing this with a switch/case (and of course also with literal numbers...) // Someone must have really hated constant data, doing this with a switch/case (and of course also with literal numbers...)
@ -243,14 +243,14 @@ void hud_input(int snum)
if (dainv >= 1 && dainv < 8) FTA(invquotes[dainv - 1], p); if (dainv >= 1 && dainv < 8) FTA(invquotes[dainv - 1], p);
} }
int weap = PlayerNewWeapon(snum); int weap = PlayerNewWeapon(plnum);
if (weap > 1 && p->kickback_pic > 0) if (weap > 1 && p->kickback_pic > 0)
p->wantweaponfire = weap - 1; p->wantweaponfire = weap - 1;
// Here we have to be extra careful that the weapons do not get mixed up, so let's keep the code for Duke and RR completely separate. // Here we have to be extra careful that the weapons do not get mixed up, so let's keep the code for Duke and RR completely separate.
fi.selectweapon(snum, weap); fi.selectweapon(plnum, weap);
if (PlayerInput(snum, SB_HOLSTER)) if (PlayerInput(plnum, SB_HOLSTER))
{ {
if (p->curr_weapon > KNEE_WEAPON) if (p->curr_weapon > KNEE_WEAPON)
{ {
@ -269,11 +269,11 @@ void hud_input(int snum)
} }
} }
if (PlayerUseItem(snum, ICON_HOLODUKE) && (isRR() || p->newowner == -1)) if (PlayerUseItem(plnum, ICON_HOLODUKE) && (isRR() || p->newowner == -1))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_HOLODUKEON, -1, snum, -1); OnEvent(EVENT_HOLODUKEON, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0)
{ {
if (!isRR()) if (!isRR())
{ {
@ -290,7 +290,7 @@ void hud_input(int snum)
p->posz + (30 << 8), TILE_APLAYER, -64, 0, 0, p->angle.ang.asbuild(), 0, 0, -1, 10); p->posz + (30 << 8), TILE_APLAYER, -64, 0, 0, p->angle.ang.asbuild(), 0, 0, -1, 10);
hittype[i].temp_data[3] = hittype[i].temp_data[4] = 0; hittype[i].temp_data[3] = hittype[i].temp_data[4] = 0;
p->holoduke_on = &hittype[i]; p->holoduke_on = &hittype[i];
sprite[i].yvel = snum; sprite[i].yvel = plnum;
sprite[i].extra = 0; sprite[i].extra = 0;
FTA(QUOTE_HOLODUKE_ON, p); FTA(QUOTE_HOLODUKE_ON, p);
S_PlayActorSound(TELEPORTER, p->holoduke_on); S_PlayActorSound(TELEPORTER, p->holoduke_on);
@ -326,18 +326,18 @@ void hud_input(int snum)
} }
} }
if (isRR() && PlayerUseItem(snum, ICON_HEATS) && p->newowner == -1) if (isRR() && PlayerUseItem(plnum, ICON_HEATS) && p->newowner == -1)
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_USENIGHTVISION, -1, snum, -1); OnEvent(EVENT_USENIGHTVISION, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0)
{ {
if (p->yehaa_timer == 0) if (p->yehaa_timer == 0)
{ {
p->yehaa_timer = 126; p->yehaa_timer = 126;
S_PlayActorSound(390, p->i); S_PlayActorSound(390, p->i);
p->noise_radius = 16384; p->noise_radius = 16384;
madenoise(snum); madenoise(plnum);
if (sector[p->cursectnum].lotag == 857) if (sector[p->cursectnum].lotag == 857)
{ {
if (p->GetActor()->s.extra <= max_player_health) if (p->GetActor()->s.extra <= max_player_health)
@ -358,11 +358,11 @@ void hud_input(int snum)
} }
} }
if (PlayerUseItem(snum, ICON_FIRSTAID)) if (PlayerUseItem(plnum, ICON_FIRSTAID))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_USEMEDKIT, -1, snum, -1); OnEvent(EVENT_USEMEDKIT, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0)
{ {
if (p->firstaid_amount > 0 && p->GetActor()->s.extra < max_player_health) if (p->firstaid_amount > 0 && p->GetActor()->s.extra < max_player_health)
{ {
@ -411,11 +411,11 @@ void hud_input(int snum)
} }
} }
if (PlayerUseItem(snum, ICON_JETPACK) && (isRR() || p->newowner == -1)) if (PlayerUseItem(plnum, ICON_JETPACK) && (isRR() || p->newowner == -1))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_USEJETPACK, -1, snum, -1); OnEvent(EVENT_USEJETPACK, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) == 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) == 0)
{ {
if (!isRR()) if (!isRR())
{ {
@ -479,11 +479,11 @@ void hud_input(int snum)
} }
} }
if (PlayerInput(snum, SB_TURNAROUND) && p->angle.spin.asbam() == 0 && p->on_crane == nullptr) if (PlayerInput(plnum, SB_TURNAROUND) && p->angle.spin.asbam() == 0 && p->on_crane == nullptr)
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, plnum);
OnEvent(EVENT_TURNAROUND, -1, snum, -1); OnEvent(EVENT_TURNAROUND, plnum, nullptr, -1);
if (GetGameVarID(g_iReturnVarID, -1, snum) != 0) if (GetGameVarID(g_iReturnVarID, -1, plnum) != 0)
{ {
p->sync.actions &= ~SB_TURNAROUND; p->sync.actions &= ~SB_TURNAROUND;
} }

View file

@ -742,7 +742,7 @@ void playerCrouch(int snum)
auto p = &ps[snum]; auto p = &ps[snum];
// crouching // crouching
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_CROUCH, p->i, snum, -1); OnEvent(EVENT_CROUCH, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0)
{ {
p->posz += (2048 + 768); p->posz += (2048 + 768);
@ -758,7 +758,7 @@ void playerJump(int snum, int fz, int cz)
if ((fz - cz) > (56 << 8)) if ((fz - cz) > (56 << 8))
{ {
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_JUMP, p->i, snum, -1); OnEvent(EVENT_JUMP, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0)
{ {
p->jumping_counter = 1; p->jumping_counter = 1;
@ -905,7 +905,7 @@ void checklook(int snum, ESyncBits actions)
if ((actions & SB_LOOK_LEFT) && !p->OnMotorcycle) if ((actions & SB_LOOK_LEFT) && !p->OnMotorcycle)
{ {
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_LOOKLEFT, p->i, snum, -1); OnEvent(EVENT_LOOKLEFT, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0)
{ {
actions &= ~SB_LOOK_LEFT; actions &= ~SB_LOOK_LEFT;
@ -915,7 +915,7 @@ void checklook(int snum, ESyncBits actions)
if ((actions & SB_LOOK_RIGHT) && !p->OnMotorcycle) if ((actions & SB_LOOK_RIGHT) && !p->OnMotorcycle)
{ {
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_LOOKRIGHT, p->i, snum, -1); OnEvent(EVENT_LOOKRIGHT, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0)
{ {
actions &= ~SB_LOOK_RIGHT; actions &= ~SB_LOOK_RIGHT;
@ -934,7 +934,7 @@ void playerCenterView(int snum)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_RETURNTOCENTER, p->i, snum, -1); OnEvent(EVENT_RETURNTOCENTER, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0)
{ {
p->sync.actions |= SB_CENTERVIEW; p->sync.actions |= SB_CENTERVIEW;
@ -949,7 +949,7 @@ void playerLookUp(int snum, ESyncBits actions)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_LOOKUP, p->i, snum, -1); OnEvent(EVENT_LOOKUP, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0)
{ {
p->sync.actions |= SB_CENTERVIEW; p->sync.actions |= SB_CENTERVIEW;
@ -964,7 +964,7 @@ void playerLookDown(int snum, ESyncBits actions)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_LOOKDOWN, p->i, snum, -1); OnEvent(EVENT_LOOKDOWN, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) == 0)
{ {
p->sync.actions |= SB_CENTERVIEW; p->sync.actions |= SB_CENTERVIEW;
@ -979,7 +979,7 @@ void playerAimUp(int snum, ESyncBits actions)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_AIMUP, p->i, snum, -1); OnEvent(EVENT_AIMUP, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0)
{ {
p->sync.actions &= ~SB_AIM_UP; p->sync.actions &= ~SB_AIM_UP;
@ -990,7 +990,7 @@ void playerAimDown(int snum, ESyncBits actions)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
OnEvent(EVENT_AIMDOWN, p->i, snum, -1); OnEvent(EVENT_AIMDOWN, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0) if (GetGameVarID(g_iReturnVarID, p->i, snum) != 0)
{ {
p->sync.actions &= ~SB_AIM_DOWN; p->sync.actions &= ~SB_AIM_DOWN;

View file

@ -327,7 +327,7 @@ static void shootweapon(int i, int p, int sx, int sy, int sz, int sa, int atwith
if (p >= 0) if (p >= 0)
{ {
SetGameVarID(g_iAimAngleVarID, AUTO_AIM_ANGLE, i, p); SetGameVarID(g_iAimAngleVarID, AUTO_AIM_ANGLE, i, p);
OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); OnEvent(EVENT_GETAUTOAIMANGLE, p, ps[p].GetActor(), -1);
j = -1; j = -1;
if (GetGameVarID(g_iAimAngleVarID, i, p) > 0) if (GetGameVarID(g_iAimAngleVarID, i, p) > 0)
{ {
@ -361,7 +361,7 @@ static void shootweapon(int i, int p, int sx, int sy, int sz, int sa, int atwith
int zRange = 256; int zRange = 256;
SetGameVarID(g_iAngRangeVarID, 32, i, p); SetGameVarID(g_iAngRangeVarID, 32, i, p);
SetGameVarID(g_iZRangeVarID, 256, i, p); SetGameVarID(g_iZRangeVarID, 256, i, p);
OnEvent(EVENT_GETSHOTRANGE, i, p, -1); OnEvent(EVENT_GETSHOTRANGE, p, ps[p].GetActor(), -1);
angRange = GetGameVarID(g_iAngRangeVarID, i, p); angRange = GetGameVarID(g_iAngRangeVarID, i, p);
zRange = GetGameVarID(g_iZRangeVarID, i, p); zRange = GetGameVarID(g_iZRangeVarID, i, p);
@ -1010,7 +1010,7 @@ void shoot_d(int i, int atwith)
SetGameVarID(g_iAtWithVarID, 0, p, atwith); SetGameVarID(g_iAtWithVarID, 0, p, atwith);
SetGameVarID(g_iReturnVarID, 0, p, i); SetGameVarID(g_iReturnVarID, 0, p, i);
OnEvent(EVENT_SHOOT, i, p, -1); OnEvent(EVENT_SHOOT, p, ps[p].GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, p, i) != 0) if (GetGameVarID(g_iReturnVarID, p, i) != 0)
{ {
return; return;
@ -1674,7 +1674,7 @@ static void operateJetpack(int snum, ESyncBits actions, int psectlotag, int fz,
{ {
// jump // jump
SetGameVarID(g_iReturnVarID, 0, pi, snum); SetGameVarID(g_iReturnVarID, 0, pi, snum);
OnEvent(EVENT_SOARUP, pi, snum, -1); OnEvent(EVENT_SOARUP, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, pi, snum) == 0) if (GetGameVarID(g_iReturnVarID, pi, snum) == 0)
{ {
p->posz -= j; p->posz -= j;
@ -1686,7 +1686,7 @@ static void operateJetpack(int snum, ESyncBits actions, int psectlotag, int fz,
{ {
// crouch // crouch
SetGameVarID(g_iReturnVarID, 0, pi, snum); SetGameVarID(g_iReturnVarID, 0, pi, snum);
OnEvent(EVENT_SOARDOWN, pi, snum, -1); OnEvent(EVENT_SOARDOWN, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, pi, snum) == 0) if (GetGameVarID(g_iReturnVarID, pi, snum) == 0)
{ {
p->posz += j; p->posz += j;
@ -2642,7 +2642,7 @@ static void processweapon(int snum, ESyncBits actions, int psect)
SetGameVarID(g_iReturnVarID, 0, pi, snum); SetGameVarID(g_iReturnVarID, 0, pi, snum);
SetGameVarID(g_iWeaponVarID, p->curr_weapon, pi, snum); SetGameVarID(g_iWeaponVarID, p->curr_weapon, pi, snum);
SetGameVarID(g_iWorksLikeVarID, aplWeaponWorksLike[p->curr_weapon][snum], pi, snum); SetGameVarID(g_iWorksLikeVarID, aplWeaponWorksLike[p->curr_weapon][snum], pi, snum);
OnEvent(EVENT_HOLSTER, pi, snum, -1); OnEvent(EVENT_HOLSTER, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, pi, snum) == 0) if (GetGameVarID(g_iReturnVarID, pi, snum) == 0)
{ {
// now it uses the game definitions... // now it uses the game definitions...

View file

@ -874,7 +874,7 @@ void shoot_r(int i, int atwith)
SetGameVarID(g_iAtWithVarID, 0, p, atwith); SetGameVarID(g_iAtWithVarID, 0, p, atwith);
SetGameVarID(g_iReturnVarID, 0, p, i); SetGameVarID(g_iReturnVarID, 0, p, i);
OnEvent(EVENT_SHOOT, i, p, -1); OnEvent(EVENT_SHOOT, p, &hittype[i], -1);
if (GetGameVarID(g_iReturnVarID, p, i) != 0) if (GetGameVarID(g_iReturnVarID, p, i) != 0)
{ {
return; return;

View file

@ -161,7 +161,7 @@ void fireweapon_ww(int snum)
SetGameVarID(g_iReturnVarID, 0, pi, snum); SetGameVarID(g_iReturnVarID, 0, pi, snum);
SetGameVarID(g_iWeaponVarID, p->curr_weapon, pi, snum); SetGameVarID(g_iWeaponVarID, p->curr_weapon, pi, snum);
SetGameVarID(g_iWorksLikeVarID, aplWeaponWorksLike[p->curr_weapon][snum], pi, snum); SetGameVarID(g_iWorksLikeVarID, aplWeaponWorksLike[p->curr_weapon][snum], pi, snum);
OnEvent(EVENT_FIRE, pi, snum, -1); OnEvent(EVENT_FIRE, snum, p->GetActor(), -1);
if (GetGameVarID(g_iReturnVarID, pi, snum) == 0) if (GetGameVarID(g_iReturnVarID, pi, snum) == 0)
{ {
switch (aplWeaponWorksLike[p->curr_weapon][snum]) switch (aplWeaponWorksLike[p->curr_weapon][snum])

View file

@ -297,7 +297,7 @@ void resetweapons(int snum)
p->gotweapon.Set(SLINGBLADE_WEAPON); p->gotweapon.Set(SLINGBLADE_WEAPON);
p->ammo_amount[SLINGBLADE_WEAPON] = 1; p->ammo_amount[SLINGBLADE_WEAPON] = 1;
} }
OnEvent(EVENT_RESETWEAPONS, -1, snum, -1); OnEvent(EVENT_RESETWEAPONS, snum, nullptr, -1);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -370,7 +370,7 @@ void resetinventory(int snum)
ufocnt = 0; ufocnt = 0;
hulkspawn = 2; hulkspawn = 2;
} }
OnEvent(EVENT_RESETINVENTORY, snum, p->i); OnEvent(EVENT_RESETINVENTORY, snum, p->GetActor());
} }