mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 12:32:34 +00:00
- one more bit of scriptification.
This commit is contained in:
parent
1423d5f42a
commit
f0e4f54c80
4 changed files with 50 additions and 47 deletions
|
@ -387,8 +387,6 @@ public:
|
||||||
|
|
||||||
void RefreshBackground () const;
|
void RefreshBackground () const;
|
||||||
|
|
||||||
void GetCurrentAmmo (AInventory *&ammo1, AInventory *&ammo2, int &ammocount1, int &ammocount2) const;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AInventory *ValidateInvFirst (int numVisible) const;
|
AInventory *ValidateInvFirst (int numVisible) const;
|
||||||
void DrawCrosshair ();
|
void DrawCrosshair ();
|
||||||
|
|
|
@ -1068,8 +1068,24 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CPlayer->ReadyWeapon != NULL)
|
||||||
|
{
|
||||||
|
ammo1 = CPlayer->ReadyWeapon->Ammo1;
|
||||||
|
ammo2 = CPlayer->ReadyWeapon->Ammo2;
|
||||||
|
if (ammo1 == NULL)
|
||||||
|
{
|
||||||
|
ammo1 = ammo2;
|
||||||
|
ammo2 = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ammo1 = ammo2 = NULL;
|
||||||
|
}
|
||||||
|
ammocount1 = ammo1 != NULL ? ammo1->Amount : 0;
|
||||||
|
ammocount2 = ammo2 != NULL ? ammo2->Amount : 0;
|
||||||
|
|
||||||
//prepare ammo counts
|
//prepare ammo counts
|
||||||
wrapper->GetCurrentAmmo(ammo1, ammo2, ammocount1, ammocount2);
|
|
||||||
armor = CPlayer->mo->FindInventory(NAME_BasicArmor);
|
armor = CPlayer->mo->FindInventory(NAME_BasicArmor);
|
||||||
|
|
||||||
if(state != HUD_AltHud)
|
if(state != HUD_AltHud)
|
||||||
|
|
|
@ -1377,49 +1377,6 @@ DEFINE_ACTION_FUNCTION(DBaseStatusBar, ValidateInvFirst)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//============================================================================
|
|
||||||
//
|
|
||||||
// DBaseStatusBar :: GetCurrentAmmo
|
|
||||||
//
|
|
||||||
// Returns the types and amounts of ammo used by the current weapon. If the
|
|
||||||
// weapon only uses one type of ammo, it is always returned as ammo1.
|
|
||||||
//
|
|
||||||
//============================================================================
|
|
||||||
|
|
||||||
void DBaseStatusBar::GetCurrentAmmo (AInventory *&ammo1, AInventory *&ammo2, int &ammocount1, int &ammocount2) const
|
|
||||||
{
|
|
||||||
if (CPlayer->ReadyWeapon != NULL)
|
|
||||||
{
|
|
||||||
ammo1 = CPlayer->ReadyWeapon->Ammo1;
|
|
||||||
ammo2 = CPlayer->ReadyWeapon->Ammo2;
|
|
||||||
if (ammo1 == NULL)
|
|
||||||
{
|
|
||||||
ammo1 = ammo2;
|
|
||||||
ammo2 = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ammo1 = ammo2 = NULL;
|
|
||||||
}
|
|
||||||
ammocount1 = ammo1 != NULL ? ammo1->Amount : 0;
|
|
||||||
ammocount2 = ammo2 != NULL ? ammo2->Amount : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION(DBaseStatusBar, GetCurrentAmmo)
|
|
||||||
{
|
|
||||||
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
|
||||||
AInventory *ammo1, *ammo2;
|
|
||||||
int ammocount1, ammocount2;
|
|
||||||
self->GetCurrentAmmo(ammo1, ammo2, ammocount1, ammocount2);
|
|
||||||
if (numret >= 1) ret[0].SetPointer(ammo1, ATAG_OBJECT);
|
|
||||||
if (numret >= 2) ret[1].SetPointer(ammo2, ATAG_OBJECT);
|
|
||||||
if (numret >= 3) ret[2].SetInt(ammocount1);
|
|
||||||
if (numret >= 4) ret[3].SetInt(ammocount2);
|
|
||||||
return MIN(numret, 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
// CCMD showpop
|
// CCMD showpop
|
||||||
|
|
|
@ -79,6 +79,38 @@ class BaseStatusBar native ui
|
||||||
virtual void SetMugShotState (String state_name, bool wait_till_done=false, bool reset=false) {}
|
virtual void SetMugShotState (String state_name, bool wait_till_done=false, bool reset=false) {}
|
||||||
|
|
||||||
native void RefreshBackground () const;
|
native void RefreshBackground () const;
|
||||||
native Inventory, Inventory, int, int GetCurrentAmmo () const;
|
|
||||||
native Inventory ValidateInvFirst (int numVisible) const;
|
native Inventory ValidateInvFirst (int numVisible) const;
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// DBaseStatusBar :: GetCurrentAmmo
|
||||||
|
//
|
||||||
|
// Returns the types and amounts of ammo used by the current weapon. If the
|
||||||
|
// weapon only uses one type of ammo, it is always returned as ammo1.
|
||||||
|
//
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
Inventory, Inventory, int, int GetCurrentAmmo () const
|
||||||
|
{
|
||||||
|
Ammo ammo1, ammo2;
|
||||||
|
if (CPlayer.ReadyWeapon != NULL)
|
||||||
|
{
|
||||||
|
ammo1 = CPlayer.ReadyWeapon.Ammo1;
|
||||||
|
ammo2 = CPlayer.ReadyWeapon.Ammo2;
|
||||||
|
if (ammo1 == NULL)
|
||||||
|
{
|
||||||
|
ammo1 = ammo2;
|
||||||
|
ammo2 = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ammo1 = ammo2 = NULL;
|
||||||
|
}
|
||||||
|
let ammocount1 = ammo1 != NULL ? ammo1.Amount : 0;
|
||||||
|
let ammocount2 = ammo2 != NULL ? ammo2.Amount : 0;
|
||||||
|
return ammo1, ammo2, ammocount1, ammocount2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue