mirror of
https://github.com/1dot13/source.git
synced 2026-08-19 14:20:30 +02:00
Enhanced Description Box, v1.3. By Headrock
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@2414 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,27 @@
|
||||
#ifndef __INTERFACE_ENHANCED_H
|
||||
#define __INTERFACE_ENHANCED_H
|
||||
|
||||
extern INV_DESC_STATS gMiscItemStatsEDB[];
|
||||
|
||||
UINT8 UsingEDBSystem();
|
||||
void InitItemDescriptionBoxOffsets();
|
||||
BOOLEAN InternalInitEnhancedDescBox();
|
||||
void InternalInitEDBTooltipRegion( OBJECTTYPE * gpItemDescObject, UINT32 guiCurrentItemDescriptionScreen );
|
||||
void DeleteEnhancedDescBox( UINT32 guiCurrentItemDescriptionScreen );
|
||||
void InitDescStatCoords();
|
||||
void InitLBECoords();
|
||||
void InitEDBCoords();
|
||||
|
||||
void DrawWeaponStats( OBJECTTYPE * gpItemDescObject );
|
||||
void DrawAmmoStats( OBJECTTYPE * gpItemDescObject );
|
||||
void DrawExplosiveStats( OBJECTTYPE * gpItemDescObject );
|
||||
void DrawArmorStats( OBJECTTYPE * gpItemDescObject );
|
||||
void DrawMiscStats( OBJECTTYPE * gpItemDescObject );
|
||||
|
||||
void DrawWeaponValues( OBJECTTYPE * gpItemDescObject );
|
||||
void DrawAmmoValues( OBJECTTYPE * gpItemDescObject, int shotsLeft );
|
||||
void DrawExplosiveValues( OBJECTTYPE * gpItemDescObject );
|
||||
void DrawArmorValues( OBJECTTYPE * gpItemDescObject );
|
||||
void DrawMiscValues( OBJECTTYPE * gpItemDescObject );
|
||||
|
||||
#endif
|
||||
+898
-655
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,7 @@
|
||||
#define BIG_INV_SLOT_HEIGHT 22
|
||||
#define SM_INV_SLOT_WIDTH 30
|
||||
#define SM_INV_SLOT_HEIGHT 23
|
||||
#define MAP_ATTACH_SLOT_WIDTH 32
|
||||
#define VEST_INV_SLOT_WIDTH 43
|
||||
#define VEST_INV_SLOT_HEIGHT 24
|
||||
#define LEGS_INV_SLOT_WIDTH 43
|
||||
@@ -17,6 +18,72 @@
|
||||
#define HEAD_INV_SLOT_HEIGHT 24
|
||||
|
||||
|
||||
//CHRISL: moved from Interface Items.cpp
|
||||
typedef struct
|
||||
{
|
||||
INT16 sX;
|
||||
INT16 sY;
|
||||
INT16 sValDx;
|
||||
|
||||
} INV_DESC_STATS;
|
||||
typedef struct
|
||||
{
|
||||
UINT32 uiTotalAmount;
|
||||
UINT32 uiMoneyRemaining;
|
||||
UINT32 uiMoneyRemoving;
|
||||
|
||||
} REMOVE_MONEY;
|
||||
typedef struct
|
||||
{
|
||||
UINT16 x;
|
||||
UINT16 y;
|
||||
} MoneyLoc;
|
||||
void ItemDescCallback( MOUSE_REGION * pRegion, INT32 iReason );
|
||||
#define ITEMDESC_FONT BLOCKFONT2
|
||||
#define INV_BAR_DX 5
|
||||
#define INV_BAR_DY 21
|
||||
#define ITEM_STATS_WIDTH 26
|
||||
#define ITEM_STATS_HEIGHT 8
|
||||
#define EXCEPTIONAL_DAMAGE 40
|
||||
#define EXCEPTIONAL_WEIGHT 20
|
||||
#define EXCEPTIONAL_RANGE 400
|
||||
#define EXCEPTIONAL_MAGAZINE 50
|
||||
#define EXCEPTIONAL_AP_COST 5
|
||||
#define EXCEPTIONAL_BURST_SIZE 5
|
||||
#define EXCEPTIONAL_RELIABILITY 2
|
||||
#define EXCEPTIONAL_REPAIR_EASE 2
|
||||
#define EXCEPTIONAL_ACCURACY 4
|
||||
#define ITEMDESC_FONTHIGHLIGHT FONT_MCOLOR_WHITE
|
||||
#define MAP_ITEMDESC_NAME_X (7 + gsInvDescX)
|
||||
#define MAP_ITEMDESC_NAME_Y (65 + gsInvDescY)
|
||||
|
||||
//CHRISL: extern'd for EDB project
|
||||
extern INT16 gsInvDescX;
|
||||
extern INT16 gsInvDescY;
|
||||
extern INT16 ITEMDESC_CALIBER_X;
|
||||
extern INT16 ITEMDESC_CALIBER_Y;
|
||||
extern INT16 BULLET_SING_X;
|
||||
extern INT16 BULLET_SING_Y;
|
||||
extern INT16 BULLET_BURST_X;
|
||||
extern INT16 BULLET_BURST_Y;
|
||||
extern INT16 MAP_BULLET_SING_X;
|
||||
extern INT16 MAP_BULLET_SING_Y;
|
||||
extern INT16 MAP_BULLET_BURST_X;
|
||||
extern INT16 MAP_BULLET_BURST_Y;
|
||||
extern INT16 ITEMDESC_DESC_START_X;
|
||||
extern INT16 ITEMDESC_DESC_START_Y;
|
||||
extern INT16 ITEMDESC_PROS_START_X;
|
||||
extern INT16 ITEMDESC_PROS_START_Y;
|
||||
extern INT16 ITEMDESC_CONS_START_X;
|
||||
extern INT16 ITEMDESC_CONS_START_Y;
|
||||
extern INT16 MAP_ITEMDESC_DESC_START_X;
|
||||
extern INT16 MAP_ITEMDESC_DESC_START_Y;
|
||||
extern INT16 MAP_ITEMDESC_PROS_START_X;
|
||||
extern INT16 MAP_ITEMDESC_PROS_START_Y;
|
||||
extern INT16 MAP_ITEMDESC_CONS_START_X;
|
||||
extern INT16 MAP_ITEMDESC_CONS_START_Y;
|
||||
extern INT16 ITEMDESC_DESC_WIDTH;
|
||||
extern UINT8 gubItemDescStatusIndex;
|
||||
|
||||
// A STRUCT USED INTERNALLY FOR INV SLOT REGIONS
|
||||
typedef struct
|
||||
@@ -132,6 +199,7 @@ extern BOOLEAN gfInItemDescBox;
|
||||
BOOLEAN InItemDescriptionBox( );
|
||||
BOOLEAN InitItemDescriptionBox( SOLDIERTYPE *pSoldier, UINT8 ubPosition, INT16 sX, INT16 sY, UINT8 ubStatusIndex );
|
||||
BOOLEAN InternalInitItemDescriptionBox( OBJECTTYPE *pObject, INT16 sX, INT16 sY, UINT8 ubStatusIndex, SOLDIERTYPE *pSoldier, UINT8 ubPosition = NUM_INV_SLOTS );
|
||||
void UpdateAttachmentTooltips( OBJECTTYPE *pObject, UINT8 ubStatusIndex );
|
||||
BOOLEAN InitKeyItemDescriptionBox( SOLDIERTYPE *pSoldier, UINT8 ubPosition, INT16 sX, INT16 sY, UINT8 ubStatusIndex );
|
||||
void RenderItemDescriptionBox( );
|
||||
void HandleItemDescriptionBox( BOOLEAN *pfDirty );
|
||||
|
||||
@@ -8526,3 +8526,255 @@ INT16 GetWornStealth( SOLDIERTYPE * pSoldier )
|
||||
|
||||
return __min( ttl, 100 );
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////
|
||||
// HEADROCK: Several functions created for the Enhanced Description Box project, but may generally be useful some
|
||||
// day. They calculate item bonuses, ammo bonuses and attachment bonuses, without requiring a SOLDIERTYPE or any
|
||||
// other variable.
|
||||
////////////////////////////
|
||||
|
||||
// HEADROCK: Function to get the total aim-bonus from the gun and its attachments
|
||||
INT16 GetFlatAimBonus( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 bonus = 0;
|
||||
|
||||
bonus += Item[pObj->usItem].aimbonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].aimbonus;
|
||||
}
|
||||
|
||||
return( bonus );
|
||||
}
|
||||
|
||||
// HEADROCK: Function to get the final Loudness value of a gun, after ammo and attachment reductions
|
||||
INT16 GetFinalLoudness( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 loudness = 0;
|
||||
INT16 loudnessModifier = 0;
|
||||
|
||||
loudness = Weapon[Item[pObj->usItem].ubClassIndex].ubAttackVolume;
|
||||
|
||||
loudnessModifier += Item[pObj->usItem].percentnoisereduction;
|
||||
|
||||
if ( (*pObj)[0]->data.gun.ubGunShotsLeft > 0 )
|
||||
loudnessModifier += Item[(*pObj)[0]->data.gun.usGunAmmoItem].percentnoisereduction ;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
loudnessModifier += BonusReduce( Item[iter->usItem].percentnoisereduction, (*iter)[0]->data.objectStatus ) ;
|
||||
}
|
||||
|
||||
loudness = loudness * ( 100 - loudnessModifier ) / 100;
|
||||
loudness = __max(loudness, 1);
|
||||
|
||||
return ( loudness );
|
||||
}
|
||||
|
||||
// HEADROCK: Function to get AP bonus from an item rather than a soldier
|
||||
|
||||
INT16 GetAPBonus( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 bonus=0;
|
||||
|
||||
bonus += Item[ pObj->usItem ].APBonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].APBonus;
|
||||
}
|
||||
|
||||
return( bonus );
|
||||
}
|
||||
|
||||
// HEADROCK: Alternative function to determine flat to-hit bonus of weapon
|
||||
INT16 GetFlatToHitBonus( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 bonus=0;
|
||||
|
||||
bonus = Item[pObj->usItem].tohitbonus;
|
||||
bonus += Item[(*pObj)[0]->data.gun.usGunAmmoItem].tohitbonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].tohitbonus;
|
||||
}
|
||||
|
||||
return( bonus );
|
||||
}
|
||||
|
||||
// HEADROCK: Function to get average of all "best laser range" attributes from weapon and attachments
|
||||
INT16 GetAverageBestLaserRange( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 bonus=0;
|
||||
INT16 numModifiers=0;
|
||||
|
||||
if (Item[pObj->usItem].bestlaserrange > 0)
|
||||
{
|
||||
numModifiers++;
|
||||
bonus += Item[pObj->usItem].bestlaserrange;
|
||||
}
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
if (Item[iter->usItem].bestlaserrange > 0)
|
||||
{
|
||||
numModifiers++;
|
||||
bonus += Item[iter->usItem].bestlaserrange;
|
||||
}
|
||||
}
|
||||
|
||||
if (numModifiers>0)
|
||||
{
|
||||
bonus = bonus / numModifiers;
|
||||
}
|
||||
|
||||
return( bonus );
|
||||
}
|
||||
|
||||
// HEADROCK: This function determines the bipod bonii of the gun or its attachments
|
||||
INT16 GetBipodBonus( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 bonus=0;
|
||||
|
||||
bonus = Item[pObj->usItem].bipod;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].bipod;
|
||||
}
|
||||
|
||||
return( bonus );
|
||||
}
|
||||
|
||||
// HEADROCK: Added a function to calculate the vision range bonus of an object and its attachments. Takes an argument which determines what type
|
||||
// of vision range bonus we want to get:
|
||||
// 0 - Regular
|
||||
// 1 - Day
|
||||
// 2 - Night
|
||||
// 3 - Bright Light
|
||||
// 4 - Cave
|
||||
INT16 GetItemVisionRangeBonus( OBJECTTYPE * pObj, INT16 VisionType )
|
||||
{
|
||||
INT16 bonus = 0;
|
||||
|
||||
if (VisionType == 0)
|
||||
{
|
||||
bonus += Item[ pObj->usItem ].visionrangebonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].visionrangebonus;
|
||||
}
|
||||
}
|
||||
else if (VisionType == 1)
|
||||
{
|
||||
bonus += Item[ pObj->usItem ].dayvisionrangebonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].dayvisionrangebonus;
|
||||
}
|
||||
}
|
||||
else if (VisionType == 2)
|
||||
{
|
||||
bonus += Item[ pObj->usItem ].nightvisionrangebonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].nightvisionrangebonus;
|
||||
}
|
||||
}
|
||||
else if (VisionType == 3)
|
||||
{
|
||||
bonus += Item[ pObj->usItem ].brightlightvisionrangebonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].brightlightvisionrangebonus;
|
||||
}
|
||||
}
|
||||
else if (VisionType == 4)
|
||||
{
|
||||
bonus += Item[ pObj->usItem ].cavevisionrangebonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].cavevisionrangebonus;
|
||||
}
|
||||
}
|
||||
|
||||
return( bonus );
|
||||
|
||||
}
|
||||
|
||||
// HEADROCK: function to get Tunnel Vision percent from an item and its attachments
|
||||
|
||||
UINT8 GetItemPercentTunnelVision( OBJECTTYPE * pObj )
|
||||
{
|
||||
UINT8 bonus = 0;
|
||||
|
||||
bonus += Item[ pObj->usItem ].percenttunnelvision;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[iter->usItem].percenttunnelvision;
|
||||
}
|
||||
|
||||
bonus = __min(bonus, 100);
|
||||
|
||||
return( bonus );
|
||||
}
|
||||
|
||||
// HEADROCK: Function to calculate hearing range bonus without SOLDIERTYPE, from an item and its attachments
|
||||
INT16 GetItemHearingRangeBonus( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 bonus = 0;
|
||||
|
||||
bonus += Item[ pObj->usItem ].hearingrangebonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter)
|
||||
{
|
||||
bonus += Item[ iter->usItem ].hearingrangebonus;
|
||||
}
|
||||
|
||||
return( bonus );
|
||||
|
||||
}
|
||||
|
||||
// HEADROCK: Flash Suppression Detector function that does not use SOLDIERTYPE.
|
||||
BOOLEAN IsFlashSuppressorAlt( OBJECTTYPE * pObj )
|
||||
{
|
||||
if ( AmmoTypes[(*pObj)[0]->data.gun.ubGunAmmoType].tracerEffect )
|
||||
return FALSE;
|
||||
|
||||
if ( Item[pObj->usItem].hidemuzzleflash )
|
||||
return TRUE;
|
||||
|
||||
if ( Item[(*pObj)[0]->data.gun.usGunAmmoItem].hidemuzzleflash )
|
||||
return TRUE;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter) {
|
||||
if (Item[iter->usItem].hidemuzzleflash )
|
||||
{
|
||||
return( TRUE );
|
||||
}
|
||||
}
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
// HEADROCK: Calculate stealth not based on item status
|
||||
INT16 GetBasicStealthBonus( OBJECTTYPE * pObj )
|
||||
{
|
||||
INT16 bonus = 0;
|
||||
if ( pObj->exists() == true ) {
|
||||
bonus = Item[pObj->usItem].stealthbonus;
|
||||
|
||||
for (attachmentList::iterator iter = (*pObj)[0]->attachments.begin(); iter != (*pObj)[0]->attachments.end(); ++iter) {
|
||||
bonus += (INT16) Item[iter->usItem].stealthbonus;
|
||||
}
|
||||
}
|
||||
return( bonus );
|
||||
}
|
||||
|
||||
|
||||
@@ -214,8 +214,18 @@ UINT16 MagazineClassIndexToItemType(UINT16 usMagIndex);
|
||||
|
||||
BOOLEAN IsScoped( OBJECTTYPE * pObj );
|
||||
INT16 GetAimBonus( OBJECTTYPE * pObj, INT32 iRange, INT16 ubAimTime );
|
||||
// HEADROCK: Function to get the natural aimbonus of the weapon and its attachments
|
||||
INT16 GetFlatAimBonus( OBJECTTYPE * pObj );
|
||||
// HEADROCK: Function to get the final loudness value of a weapon, after reduction from its own characteristics, ammo and attachments
|
||||
INT16 GetFinalLoudness( OBJECTTYPE * pObj );
|
||||
INT16 GetMinAimBonusRange( OBJECTTYPE * pObj );
|
||||
INT16 GetToHitBonus( OBJECTTYPE * pObj, INT32 iRange, UINT8 bLightLevel, BOOLEAN fProneStance = FALSE );
|
||||
// HEADROCK: Added alternate function that only returns the natural to-hit-bonii of a weapon, ammo and attachments
|
||||
INT16 GetFlatToHitBonus( OBJECTTYPE * pObj );
|
||||
// HEADROCK: Function to get average of best laser ranges from weapon and attachments
|
||||
INT16 GetAverageBestLaserRange( OBJECTTYPE * pObj );
|
||||
// HEADROCK: Function to get bipod bonus from weapon and its attachments
|
||||
INT16 GetBipodBonus( OBJECTTYPE * pObj );
|
||||
UINT32 FindRangeBonusAttachment( OBJECTTYPE * pObj );
|
||||
INT16 GetRangeBonus( OBJECTTYPE * pObj );
|
||||
INT16 GetBurstToHitBonus( OBJECTTYPE * pObj, BOOLEAN fProneStance = FALSE );
|
||||
@@ -244,6 +254,11 @@ INT16 GetMagSizeBonus( OBJECTTYPE * pObj );
|
||||
// GetBrightLightVisionRangeBonus: bLightLevel < NORMAL_LIGHTLEVEL_DAY
|
||||
// (remember: darker is higher!)
|
||||
INT16 GetTotalVisionRangeBonus( SOLDIERTYPE * pSoldier, UINT8 bLightLevel );
|
||||
// HEADROCK: Following function used to get the vision range bonus of an item and its attachments. Second argument controls specific
|
||||
// vision type.
|
||||
INT16 GetItemVisionRangeBonus( OBJECTTYPE * pObj, INT16 VisionType );
|
||||
// HEADROCK: This function calculates percent tunnel vision from an object and its attachments.
|
||||
UINT8 GetItemPercentTunnelVision( OBJECTTYPE * pObj );
|
||||
|
||||
// Snap: Scale night vision bonus with light level
|
||||
INT16 NightBonusScale( INT16 bonus, UINT8 bLightLevel );
|
||||
@@ -253,6 +268,8 @@ BOOLEAN HasThermalOptics( SOLDIERTYPE * pSoldier );
|
||||
|
||||
INT8 FindHearingAid( SOLDIERTYPE * pSoldier );
|
||||
INT16 GetHearingRangeBonus( SOLDIERTYPE * pSoldier );
|
||||
// HEADROCK: This is the same function as above, but calculates hearing range bonus without SOLDIERTYPE, from an item and its attachments
|
||||
INT16 GetItemHearingRangeBonus( OBJECTTYPE * pObj );
|
||||
|
||||
INT8 IsGrenadeLauncher( OBJECTTYPE * pObj );
|
||||
INT16 GetGrenadeLauncherStatus( OBJECTTYPE * pObj );
|
||||
@@ -266,6 +283,8 @@ OBJECTTYPE* FindNonSmokeLaunchableAttachment( OBJECTTYPE * pObj, UINT16 usWeapon
|
||||
UINT16 PickARandomLaunchable(UINT16 itemIndex);
|
||||
|
||||
BOOLEAN IsFlashSuppressor( OBJECTTYPE * pObj, SOLDIERTYPE * pSoldier );
|
||||
// HEADROCK: Declaration of new function to detect flash suppression without SOLDIERTYPE argument
|
||||
BOOLEAN IsFlashSuppressorAlt( OBJECTTYPE * pObj );
|
||||
INT16 GetFlashSuppressorStatus( OBJECTTYPE * pObj );
|
||||
BOOLEAN IsRemoteDetonator( OBJECTTYPE * pObj );
|
||||
BOOLEAN IsDetonator( OBJECTTYPE * pObj );
|
||||
@@ -297,12 +316,16 @@ INT16 GetWornCamo( SOLDIERTYPE * pSoldier );
|
||||
INT16 GetCamoBonus( OBJECTTYPE * pObj );
|
||||
INT16 GetWornStealth( SOLDIERTYPE * pSoldier );
|
||||
INT16 GetStealthBonus( OBJECTTYPE * pObj );
|
||||
// HEADROCK: Non-status-dependent version of the above
|
||||
INT16 GetBasicStealthBonus( OBJECTTYPE * pObj );
|
||||
|
||||
void ApplyEquipmentBonuses(SOLDIERTYPE * pSoldier);
|
||||
|
||||
INT16 GetGearAimBonus( SOLDIERTYPE * pSoldier, INT32 iRange, INT16 ubAimTime);
|
||||
INT16 GetGearToHitBonus( SOLDIERTYPE * pSoldier );
|
||||
INT16 GetGearAPBonus( SOLDIERTYPE * pSoldier );
|
||||
// HEADROCK: This function gets total AP bonus for an item and its attachments
|
||||
INT16 GetAPBonus( OBJECTTYPE * pObj );
|
||||
|
||||
UINT16 GetFirstExplosiveOfType(UINT16 expType);
|
||||
|
||||
|
||||
@@ -392,6 +392,10 @@
|
||||
RelativePath=".\interface Dialogue.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Interface Enhanced.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Interface Items.h"
|
||||
>
|
||||
@@ -710,6 +714,10 @@
|
||||
RelativePath=".\Interface Dialogue.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Interface Enhanced.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Interface Items.cpp"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user