mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-01 14:11:01 +00:00
- access_spritenum
This commit is contained in:
parent
b891646c37
commit
29b08b2115
8 changed files with 29 additions and 25 deletions
|
@ -578,8 +578,8 @@ void DoPlayer(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PLAYER_ACCESS_SPRITENUM:
|
case PLAYER_ACCESS_SPRITENUM:
|
||||||
if (bSet) ps[iPlayer].access_spritenum = lValue;
|
if (bSet) ps[iPlayer].access_spritenum = ScriptIndexToActor(lValue);
|
||||||
else SetGameVarID((int)lVar2, ps[iPlayer].access_spritenum, sActor, sPlayer);
|
else SetGameVarID((int)lVar2, ActorToScriptIndex(ps[iPlayer].access_spritenum), sActor, sPlayer);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PLAYER_KICKBACK_PIC:
|
case PLAYER_KICKBACK_PIC:
|
||||||
|
|
|
@ -247,8 +247,8 @@ int animateaccess(int gs,int snum,double hard_landing,double look_anghalf,double
|
||||||
looking_arc = access_y[ps[snum].access_incs] + (fabs(look_anghalf) / 4.5);
|
looking_arc = access_y[ps[snum].access_incs] + (fabs(look_anghalf) / 4.5);
|
||||||
looking_arc -= hard_landing * 8.;
|
looking_arc -= hard_landing * 8.;
|
||||||
|
|
||||||
if(ps[snum].access_spritenum >= 0)
|
if(ps[snum].access_spritenum != nullptr)
|
||||||
p = sprite[ps[snum].access_spritenum].pal;
|
p = ps[snum].access_spritenum->s.pal;
|
||||||
else p = 0;
|
else p = 0;
|
||||||
|
|
||||||
if((ps[snum].access_incs-3) > 0 && (ps[snum].access_incs-3)>>3)
|
if((ps[snum].access_incs-3) > 0 && (ps[snum].access_incs-3)>>3)
|
||||||
|
|
|
@ -1291,10 +1291,10 @@ void selectweapon_d(int snum, int weap) // playernum, weaponnum
|
||||||
|
|
||||||
if (j == HANDBOMB_WEAPON && p->ammo_amount[HANDBOMB_WEAPON] == 0)
|
if (j == HANDBOMB_WEAPON && p->ammo_amount[HANDBOMB_WEAPON] == 0)
|
||||||
{
|
{
|
||||||
StatIterator it(STAT_ACTOR);
|
DukeStatIterator it(STAT_ACTOR);
|
||||||
while ((k = it.NextIndex()) >= 0)
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[k].picnum == HEAVYHBOMB && sprite[k].owner == p->i)
|
if (act->s.picnum == HEAVYHBOMB && act->GetOwner() == p->GetActor())
|
||||||
{
|
{
|
||||||
p->gotweapon.Set(HANDBOMB_WEAPON);
|
p->gotweapon.Set(HANDBOMB_WEAPON);
|
||||||
j = HANDREMOTE_WEAPON;
|
j = HANDREMOTE_WEAPON;
|
||||||
|
@ -1515,16 +1515,16 @@ int doincrements_d(struct player_struct* p)
|
||||||
p->access_incs = 12;
|
p->access_incs = 12;
|
||||||
if (p->access_incs == 12)
|
if (p->access_incs == 12)
|
||||||
{
|
{
|
||||||
if (p->access_spritenum >= 0)
|
if (p->access_spritenum != nullptr)
|
||||||
{
|
{
|
||||||
fi.checkhitswitch(snum, p->access_spritenum, 1);
|
fi.checkhitswitch(snum, p->access_spritenum->GetIndex(), 1);
|
||||||
switch (sprite[p->access_spritenum].pal)
|
switch (p->access_spritenum->s.pal)
|
||||||
{
|
{
|
||||||
case 0:p->got_access &= (0xffff - 0x1); break;
|
case 0:p->got_access &= (0xffff - 0x1); break;
|
||||||
case 21:p->got_access &= (0xffff - 0x2); break;
|
case 21:p->got_access &= (0xffff - 0x2); break;
|
||||||
case 23:p->got_access &= (0xffff - 0x4); break;
|
case 23:p->got_access &= (0xffff - 0x4); break;
|
||||||
}
|
}
|
||||||
p->access_spritenum = -1;
|
p->access_spritenum = nullptr;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2613,7 +2613,8 @@ static void processweapon(int snum, ESyncBits actions, int psect)
|
||||||
{
|
{
|
||||||
auto p = &ps[snum];
|
auto p = &ps[snum];
|
||||||
int pi = p->i;
|
int pi = p->i;
|
||||||
auto s = &sprite[pi];
|
auto pact = p->GetActor();
|
||||||
|
auto s = &pact->s;
|
||||||
int shrunk = (s->yrepeat < 32);
|
int shrunk = (s->yrepeat < 32);
|
||||||
|
|
||||||
// Set maximum for pistol slightly higher if playing with `cl_showmagamount 1`.
|
// Set maximum for pistol slightly higher if playing with `cl_showmagamount 1`.
|
||||||
|
@ -2721,7 +2722,8 @@ void processinput_d(int snum)
|
||||||
|
|
||||||
p = &ps[snum];
|
p = &ps[snum];
|
||||||
pi = p->i;
|
pi = p->i;
|
||||||
s = &sprite[pi];
|
auto pact = p->GetActor();
|
||||||
|
s = &pact->s;
|
||||||
|
|
||||||
p->horizon.resetadjustment();
|
p->horizon.resetadjustment();
|
||||||
p->angle.resetadjustment();
|
p->angle.resetadjustment();
|
||||||
|
|
|
@ -1054,10 +1054,10 @@ void selectweapon_r(int snum, int weap)
|
||||||
|
|
||||||
if (j == DYNAMITE_WEAPON && p->ammo_amount[DYNAMITE_WEAPON] == 0)
|
if (j == DYNAMITE_WEAPON && p->ammo_amount[DYNAMITE_WEAPON] == 0)
|
||||||
{
|
{
|
||||||
StatIterator it(STAT_ACTOR);
|
DukeStatIterator it(STAT_ACTOR);
|
||||||
while ((k = it.NextIndex()) >= 0)
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[k].picnum == HEAVYHBOMB && sprite[k].owner == p->i)
|
if (act->s.picnum == HEAVYHBOMB && act->GetOwner() == p->GetActor())
|
||||||
{
|
{
|
||||||
p->gotweapon.Set(DYNAMITE_WEAPON);
|
p->gotweapon.Set(DYNAMITE_WEAPON);
|
||||||
j = THROWINGDYNAMITE_WEAPON;
|
j = THROWINGDYNAMITE_WEAPON;
|
||||||
|
@ -1367,16 +1367,16 @@ int doincrements_r(struct player_struct* p)
|
||||||
p->access_incs = 12;
|
p->access_incs = 12;
|
||||||
if (p->access_incs == 12)
|
if (p->access_incs == 12)
|
||||||
{
|
{
|
||||||
if (p->access_spritenum >= 0)
|
if (p->access_spritenum != nullptr)
|
||||||
{
|
{
|
||||||
fi.checkhitswitch(snum, p->access_spritenum, 1);
|
fi.checkhitswitch(snum, p->access_spritenum->GetIndex(), 1);
|
||||||
switch (sprite[p->access_spritenum].pal)
|
switch (p->access_spritenum->s.pal)
|
||||||
{
|
{
|
||||||
case 0:p->keys[1] = 1; break;
|
case 0:p->keys[1] = 1; break;
|
||||||
case 21:p->keys[2] = 1; break;
|
case 21:p->keys[2] = 1; break;
|
||||||
case 23:p->keys[3] = 1; break;
|
case 23:p->keys[3] = 1; break;
|
||||||
}
|
}
|
||||||
p->access_spritenum = -1;
|
p->access_spritenum = nullptr;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -121,7 +121,7 @@ void resetplayerstats(int snum)
|
||||||
p->airleft = 15*26;
|
p->airleft = 15*26;
|
||||||
p->rapid_fire_hold = 0;
|
p->rapid_fire_hold = 0;
|
||||||
p->toggle_key_flag = 0;
|
p->toggle_key_flag = 0;
|
||||||
p->access_spritenum = -1;
|
p->access_spritenum = nullptr;
|
||||||
if(ud.multimode > 1 && ud.coop != 1 )
|
if(ud.multimode > 1 && ud.coop != 1 )
|
||||||
p->got_access = 7;
|
p->got_access = 7;
|
||||||
else p->got_access = 0;
|
else p->got_access = 0;
|
||||||
|
|
|
@ -233,6 +233,7 @@ bool checkhitswitch_d(int snum, int w, int switchtype)
|
||||||
correctdips = 1;
|
correctdips = 1;
|
||||||
numdips = 0;
|
numdips = 0;
|
||||||
|
|
||||||
|
auto act = &hittype[w];
|
||||||
if (switchtype == SWITCH_SPRITE) // A wall sprite
|
if (switchtype == SWITCH_SPRITE) // A wall sprite
|
||||||
{
|
{
|
||||||
lotag = sprite[w].lotag;
|
lotag = sprite[w].lotag;
|
||||||
|
@ -309,7 +310,7 @@ bool checkhitswitch_d(int snum, int w, int switchtype)
|
||||||
if (switchtype == SWITCH_WALL)
|
if (switchtype == SWITCH_WALL)
|
||||||
ps[snum].access_wallnum = w;
|
ps[snum].access_wallnum = w;
|
||||||
else
|
else
|
||||||
ps[snum].access_spritenum = w;
|
ps[snum].access_spritenum = act;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -353,6 +353,7 @@ bool checkhitswitch_r(int snum, int w, int switchtype)
|
||||||
correctdips = 1;
|
correctdips = 1;
|
||||||
numdips = 0;
|
numdips = 0;
|
||||||
|
|
||||||
|
auto act = &hittype[w];
|
||||||
if (switchtype == 1) // A wall sprite
|
if (switchtype == 1) // A wall sprite
|
||||||
{
|
{
|
||||||
lotag = sprite[w].lotag; if (lotag == 0) return 0;
|
lotag = sprite[w].lotag; if (lotag == 0) return 0;
|
||||||
|
@ -423,7 +424,7 @@ bool checkhitswitch_r(int snum, int w, int switchtype)
|
||||||
if (switchtype == 0)
|
if (switchtype == 0)
|
||||||
ps[snum].access_wallnum = w;
|
ps[snum].access_wallnum = w;
|
||||||
else
|
else
|
||||||
ps[snum].access_spritenum = w;
|
ps[snum].access_spritenum = act;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -204,14 +204,14 @@ struct player_struct
|
||||||
short curr_weapon, last_weapon, tipincs, wantweaponfire;
|
short curr_weapon, last_weapon, tipincs, wantweaponfire;
|
||||||
short holoduke_amount, newowner, hurt_delay, hbomb_hold_delay;
|
short holoduke_amount, newowner, hurt_delay, hbomb_hold_delay;
|
||||||
short jumping_counter, airleft, knee_incs, access_incs;
|
short jumping_counter, airleft, knee_incs, access_incs;
|
||||||
short ftq, access_wallnum, access_spritenum;
|
short ftq, access_wallnum;
|
||||||
short got_access, weapon_ang, firstaid_amount;
|
short got_access, weapon_ang, firstaid_amount;
|
||||||
short i, one_parallax_sectnum;
|
short i, one_parallax_sectnum;
|
||||||
short over_shoulder_on, fist_incs;
|
short over_shoulder_on, fist_incs;
|
||||||
short cheat_phase;
|
short cheat_phase;
|
||||||
short dummyplayersprite, extra_extra8, quick_kick, last_quick_kick;
|
short dummyplayersprite, extra_extra8, quick_kick, last_quick_kick;
|
||||||
short heat_amount, timebeforeexit, customexitsound;
|
short heat_amount, timebeforeexit, customexitsound;
|
||||||
DDukeActor* actorsqu, *wackedbyactor, *on_crane, *holoduke_on, *somethingonplayer;
|
DDukeActor* actorsqu, *wackedbyactor, *on_crane, *holoduke_on, *somethingonplayer, *access_spritenum;
|
||||||
|
|
||||||
short weaprecs[256], weapreccnt;
|
short weaprecs[256], weapreccnt;
|
||||||
unsigned int interface_toggle_flag;
|
unsigned int interface_toggle_flag;
|
||||||
|
|
Loading…
Reference in a new issue