mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- Fix: random items > 200 were not read
- Fix: preplaced random items turned guns did not have ammo (WIP) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5946 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -1465,6 +1465,46 @@ OBJECTTYPE& OBJECTTYPE::operator=(const OLD_OBJECTTYPE_101& src)
|
||||
(*this)[0]->data.gun.usGunAmmoItem = src.ugYucky.usGunAmmoItem;
|
||||
(*this)[0]->data.gun.bGunAmmoStatus = src.ugYucky.bGunAmmoStatus;
|
||||
(*this)[0]->data.gun.ubGunState = src.ugYucky.ubGunState;
|
||||
|
||||
// Flugente: if we resolved a random item, we have to give it ammo...
|
||||
if ( Item[newitemfromrandom].usItemClass == IC_GUN )
|
||||
{
|
||||
(*this)[0]->data.ubImprintID = NO_PROFILE;
|
||||
|
||||
if (Weapon[ this->usItem ].ubWeaponClass == MONSTERCLASS)
|
||||
{
|
||||
(*this)[0]->data.gun.ubGunShotsLeft = 1;
|
||||
(*this)[0]->data.gun.ubGunAmmoType = AMMO_MONSTER;
|
||||
(*this)[0]->data.gun.ubGunState |= GS_CARTRIDGE_IN_CHAMBER; // 0verhaul: Monsters don't have to reload!
|
||||
}
|
||||
else if ( EXPLOSIVE_GUN( this->usItem ) )
|
||||
{
|
||||
if ( Item[this->usItem].singleshotrocketlauncher )
|
||||
{
|
||||
(*this)[0]->data.gun.ubGunShotsLeft = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// cannon
|
||||
(*this)[0]->data.gun.ubGunShotsLeft = 0;
|
||||
}
|
||||
(*this)[0]->data.gun.bGunAmmoStatus = 100;
|
||||
(*this)[0]->data.gun.ubGunAmmoType = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
UINT16 usAmmo = DefaultMagazine( this->usItem );
|
||||
if ( usAmmo )
|
||||
{
|
||||
(*this)[0]->data.gun.usGunAmmoItem = usAmmo;
|
||||
(*this)[0]->data.gun.ubGunAmmoType = Magazine[ Item[ usAmmo ].ubClassIndex].ubAmmoType;
|
||||
(*this)[0]->data.gun.bGunAmmoStatus = 100;
|
||||
(*this)[0]->data.gun.ubGunShotsLeft = Magazine[ Item[ usAmmo ].ubClassIndex ].ubMagSize;
|
||||
(*this)[0]->data.gun.ubGunState |= GS_CARTRIDGE_IN_CHAMBER; // Madd: new guns should have cartridge in chamber
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -1162,7 +1162,9 @@ typedef struct RANDOM_ITEM_CHOICE_TYPE
|
||||
|
||||
} RANDOM_ITEM_CHOICE_TYPE;
|
||||
|
||||
extern RANDOM_ITEM_CHOICE_TYPE gRandomItemClass[200];
|
||||
#define RANDOM_ITEM_MAX_CATEGORIES 1000
|
||||
|
||||
extern RANDOM_ITEM_CHOICE_TYPE gRandomItemClass[RANDOM_ITEM_MAX_CATEGORIES];
|
||||
|
||||
// CHRISL: Added new structures to handle LBE gear and the two new XML files that will be needed to deal
|
||||
// with the IC pockets and the new inventory system.
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "Item Types.h"
|
||||
#endif
|
||||
|
||||
RANDOM_ITEM_CHOICE_TYPE gRandomItemClass[200];
|
||||
RANDOM_ITEM_CHOICE_TYPE gRandomItemClass[RANDOM_ITEM_MAX_CATEGORIES];
|
||||
|
||||
struct
|
||||
{
|
||||
@@ -272,7 +272,7 @@ BOOLEAN ReadInRandomItemStats(STR fileName)
|
||||
|
||||
memset(&pData,0,sizeof(pData));
|
||||
pData.curArray = gRandomItemClass;
|
||||
pData.maxArraySize = 200;
|
||||
pData.maxArraySize = RANDOM_ITEM_MAX_CATEGORIES;
|
||||
|
||||
XML_SetUserData(parser, &pData);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user