mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
- ActionItems Fix: Increased number of action items from 255 (0-254) to 501 (0-500) (by Jazz)
o See file: ActionItems.xml git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5425 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+16
-12
@@ -100,7 +100,7 @@ CHAR16 temp[30];
|
|||||||
|
|
||||||
if( (*pItem)[0]->data.misc.bActionValue != ACTION_ITEM_BLOW_UP )
|
if( (*pItem)[0]->data.misc.bActionValue != ACTION_ITEM_BLOW_UP )
|
||||||
{
|
{
|
||||||
for (i= ACTIONITEM_TRIP_KLAXON; i<=ACTIONITEM_NEW; i++ )
|
for (i= ACTIONITEM_TRIP_KLAXON; i< NUM_ACTIONITEMS; /*=ACTIONITEM_NEW;*/ i++ )
|
||||||
{
|
{
|
||||||
if ( ActionItemsValues[ i ].BlowUp == 0 )
|
if ( ActionItemsValues[ i ].BlowUp == 0 )
|
||||||
{
|
{
|
||||||
@@ -115,14 +115,17 @@ if( (*pItem)[0]->data.misc.bActionValue != ACTION_ITEM_BLOW_UP )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (i= ACTIONITEM_TRIP_KLAXON; i<=ACTIONITEM_NEW; i++ )
|
for (i= ACTIONITEM_TRIP_KLAXON; i< NUM_ACTIONITEMS; /*=ACTIONITEM_NEW;*/ i++ )
|
||||||
{
|
{
|
||||||
if ( ActionItemsValues[ i ].BlowUp == 1 )
|
if ( ActionItemsValues[ i ].BlowUp == 1 )
|
||||||
{
|
{
|
||||||
if ( (*pItem)[0]->data.misc.bActionValue == ACTION_ITEM_BLOW_UP )
|
if ( (*pItem)[0]->data.misc.bActionValue == ACTION_ITEM_BLOW_UP )
|
||||||
{
|
{
|
||||||
if ( (*pItem)[0]->data.misc.usBombItem == ActionItemsValues[ i ].BombItem )
|
if ( (*pItem)[0]->data.misc.usBombItem == ActionItemsValues[ i ].BombItem )
|
||||||
|
{
|
||||||
|
wcscpy(temp, gszActionItemDesc[i]);
|
||||||
o = i;
|
o = i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -245,7 +248,7 @@ void ToggleDetonator( GUI_BUTTON *btn, INT32 reason );
|
|||||||
|
|
||||||
UINT32 guiActionItemButton;
|
UINT32 guiActionItemButton;
|
||||||
void ActionItemCallback( GUI_BUTTON *btn, INT32 reason );
|
void ActionItemCallback( GUI_BUTTON *btn, INT32 reason );
|
||||||
INT8 gbActionItemIndex = ACTIONITEM_MEDIUM;
|
/*INT8*/ INT16 gbActionItemIndex = ACTIONITEM_MEDIUM;
|
||||||
INT8 gbDefaultBombTrapLevel = 9;
|
INT8 gbDefaultBombTrapLevel = 9;
|
||||||
|
|
||||||
void RemoveBombFromWorldByItemIndex( INT32 iItemIndex );
|
void RemoveBombFromWorldByItemIndex( INT32 iItemIndex );
|
||||||
@@ -353,7 +356,7 @@ void DisableItemStatsPanel()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExecuteItemStatsCmd( UINT8 ubAction )
|
void ExecuteItemStatsCmd( /*UINT8*/ UINT16 ubAction )
|
||||||
{
|
{
|
||||||
switch( ubAction )
|
switch( ubAction )
|
||||||
{
|
{
|
||||||
@@ -1501,22 +1504,23 @@ void ActionItemCallback( GUI_BUTTON *btn, INT32 reason )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChangeActionItem( OBJECTTYPE *pItem, INT8 bActionItemIndex )
|
void ChangeActionItem( OBJECTTYPE *pItem, /*INT8*/ INT16 bActionItemIndex )
|
||||||
{
|
{
|
||||||
UINT32 i;
|
/*UINT32*/ INT16 i;
|
||||||
pItem->usItem = ACTION_ITEM;
|
|
||||||
//(*pItem)[0]->data.misc.bActionValue = ACTION_ITEM_BLOW_UP;
|
//(*pItem)[0]->data.misc.bActionValue = ACTION_ITEM_BLOW_UP;
|
||||||
|
|
||||||
for (i= ACTIONITEM_TRIP_KLAXON; i<=ACTIONITEM_NEW; i++ )
|
for (i= ACTIONITEM_TRIP_KLAXON; i< NUM_ACTIONITEMS; /*=ACTIONITEM_NEW;*/ i++ )
|
||||||
{
|
{
|
||||||
if ( bActionItemIndex == i && ActionItemsValues[ i ].BlowUp == 1 )
|
pItem->usItem = ACTION_ITEM;
|
||||||
|
|
||||||
|
if ( bActionItemIndex == i && ActionItemsValues[ i ].BlowUp == 1 )
|
||||||
{
|
{
|
||||||
(*pItem)[0]->data.misc.usBombItem = ActionItemsValues[ i ].BombItem;
|
|
||||||
(*pItem)[0]->data.misc.bActionValue = ACTION_ITEM_BLOW_UP;
|
(*pItem)[0]->data.misc.bActionValue = ACTION_ITEM_BLOW_UP;
|
||||||
|
(*pItem)[0]->data.misc.usBombItem = ActionItemsValues[ i ].BombItem;
|
||||||
}
|
}
|
||||||
else if ( bActionItemIndex == i && ActionItemsValues[ i ].BlowUp == 0 )
|
else if ( bActionItemIndex == i && ActionItemsValues[ i ].BlowUp == 0 )
|
||||||
{
|
{
|
||||||
(*pItem)[0]->data.misc.usBombItem = ActionItemsValues[ i ].BombItem;
|
(*pItem)[0]->data.misc.usBombItem = NOTHING; //ActionItemsValues[ i ].BombItem;
|
||||||
(*pItem)[0]->data.misc.bActionValue = ActionItemsValues[ i ].ActionID;
|
(*pItem)[0]->data.misc.bActionValue = ActionItemsValues[ i ].ActionID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1679,7 +1683,7 @@ pItem->usItem = ACTION_ITEM;
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateActionItem( INT8 bActionItemIndex )
|
void UpdateActionItem( /*INT8*/ INT16 bActionItemIndex )
|
||||||
{
|
{
|
||||||
gbActionItemIndex = bActionItemIndex; //used for future new actionitems as the default.
|
gbActionItemIndex = bActionItemIndex; //used for future new actionitems as the default.
|
||||||
|
|
||||||
|
|||||||
+47
-45
@@ -1,50 +1,8 @@
|
|||||||
#include "BuildDefines.h"
|
#include "BuildDefines.h"
|
||||||
|
|
||||||
#ifdef JA2EDITOR
|
|
||||||
#ifndef __ITEM_STATISTICS_H
|
#ifndef __ITEM_STATISTICS_H
|
||||||
#define __ITEM_STATISTICS_H
|
#define __ITEM_STATISTICS_H
|
||||||
|
|
||||||
//#include "Item Types.h"
|
|
||||||
|
|
||||||
//forward declarations of common classes to eliminate includes
|
|
||||||
class OBJECTTYPE;
|
|
||||||
class SOLDIERTYPE;
|
|
||||||
|
|
||||||
|
|
||||||
//Handles the dynamic changing of text input fields and button modes depending on the currently edited
|
|
||||||
//item. Both the merc's inventory panel, and the items tab use the same code to accomplish this.
|
|
||||||
|
|
||||||
//Set if we are editing items from the items tab. Otherwise, it is assumed that we are
|
|
||||||
//editing items from the merc's inventory panel.
|
|
||||||
extern BOOLEAN gfItemEditingMode;
|
|
||||||
|
|
||||||
//Set if we need to update the panel.
|
|
||||||
extern BOOLEAN gfRenderItemStatsPanel;
|
|
||||||
|
|
||||||
void SpecifyItemToEdit( OBJECTTYPE *pItem, INT32 iMapIndex );
|
|
||||||
|
|
||||||
void ShowItemStatsPanel();
|
|
||||||
void HideItemStatsPanel();
|
|
||||||
void EnableItemStatsPanel();
|
|
||||||
void DisableItemStatsPanel();
|
|
||||||
|
|
||||||
//called from the taskbar renderer.
|
|
||||||
void UpdateItemStatsPanel();
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
ITEMSTATS_APPLY,
|
|
||||||
ITEMSTATS_CANCEL,
|
|
||||||
ITEMSTATS_DEFAULT,
|
|
||||||
ITEMSTATS_DELETE,
|
|
||||||
ITEMSTATS_HIDE,
|
|
||||||
ITEMSTATS_SHOW,
|
|
||||||
};
|
|
||||||
void ExecuteItemStatsCmd( UINT8 ubAction );
|
|
||||||
|
|
||||||
extern OBJECTTYPE *gpItem;
|
|
||||||
extern INT32 gsItemGridNo;
|
|
||||||
|
|
||||||
//enumerations for all of the different action items. Used by the popup menu for
|
//enumerations for all of the different action items. Used by the popup menu for
|
||||||
//changing the type of action item. When modified, an equivalent text array must be
|
//changing the type of action item. When modified, an equivalent text array must be
|
||||||
//changed as well.
|
//changed as well.
|
||||||
@@ -98,14 +56,58 @@ enum
|
|||||||
|
|
||||||
NUM_ACTIONITEMS
|
NUM_ACTIONITEMS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef JA2EDITOR
|
||||||
|
|
||||||
|
//#include "Item Types.h"
|
||||||
|
|
||||||
|
//forward declarations of common classes to eliminate includes
|
||||||
|
class OBJECTTYPE;
|
||||||
|
class SOLDIERTYPE;
|
||||||
|
|
||||||
|
|
||||||
|
//Handles the dynamic changing of text input fields and button modes depending on the currently edited
|
||||||
|
//item. Both the merc's inventory panel, and the items tab use the same code to accomplish this.
|
||||||
|
|
||||||
|
//Set if we are editing items from the items tab. Otherwise, it is assumed that we are
|
||||||
|
//editing items from the merc's inventory panel.
|
||||||
|
extern BOOLEAN gfItemEditingMode;
|
||||||
|
|
||||||
|
//Set if we need to update the panel.
|
||||||
|
extern BOOLEAN gfRenderItemStatsPanel;
|
||||||
|
|
||||||
|
void SpecifyItemToEdit( OBJECTTYPE *pItem, INT32 iMapIndex );
|
||||||
|
|
||||||
|
void ShowItemStatsPanel();
|
||||||
|
void HideItemStatsPanel();
|
||||||
|
void EnableItemStatsPanel();
|
||||||
|
void DisableItemStatsPanel();
|
||||||
|
|
||||||
|
//called from the taskbar renderer.
|
||||||
|
void UpdateItemStatsPanel();
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
ITEMSTATS_APPLY,
|
||||||
|
ITEMSTATS_CANCEL,
|
||||||
|
ITEMSTATS_DEFAULT,
|
||||||
|
ITEMSTATS_DELETE,
|
||||||
|
ITEMSTATS_HIDE,
|
||||||
|
ITEMSTATS_SHOW,
|
||||||
|
};
|
||||||
|
void ExecuteItemStatsCmd( /*UINT8*/ UINT16 ubAction );
|
||||||
|
|
||||||
|
extern OBJECTTYPE *gpItem;
|
||||||
|
extern INT32 gsItemGridNo;
|
||||||
|
|
||||||
extern CHAR16 gszActionItemDesc[ NUM_ACTIONITEMS ][ 30 ];
|
extern CHAR16 gszActionItemDesc[ NUM_ACTIONITEMS ][ 30 ];
|
||||||
//Returns a pointer to one of the above string array.
|
//Returns a pointer to one of the above string array.
|
||||||
extern const STR16 GetActionItemName( OBJECTTYPE *pItem );
|
extern const STR16 GetActionItemName( OBJECTTYPE *pItem );
|
||||||
//Called by the popup menu, when a selection is made.
|
//Called by the popup menu, when a selection is made.
|
||||||
extern void UpdateActionItem( INT8 bActionItemIndex );
|
extern void UpdateActionItem( /*INT8*/ INT16 bActionItemIndex );
|
||||||
//Changes an action item into the type specified by the ACTIONITEM enumeration.
|
//Changes an action item into the type specified by the ACTIONITEM enumeration.
|
||||||
extern void ChangeActionItem( OBJECTTYPE *pItem, INT8 bActionItemIndex );
|
extern void ChangeActionItem( OBJECTTYPE *pItem, /*INT8*/ INT16 bActionItemIndex );
|
||||||
extern INT8 gbActionItemIndex;
|
extern /*INT8*/ INT16 gbActionItemIndex;
|
||||||
extern INT8 gbDefaultBombTrapLevel;
|
extern INT8 gbDefaultBombTrapLevel;
|
||||||
|
|
||||||
extern void SetOwnershipGroup( UINT8 ubNewGroup );
|
extern void SetOwnershipGroup( UINT8 ubNewGroup );
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ actionItemsStartElementHandle(void *userData, const XML_Char *name, const XML_Ch
|
|||||||
}
|
}
|
||||||
else if(pData->curElement == ELEMENT &&
|
else if(pData->curElement == ELEMENT &&
|
||||||
(strcmp(name, "uiIndex") == 0 ||
|
(strcmp(name, "uiIndex") == 0 ||
|
||||||
|
strcmp(name, "Name") == 0 ||
|
||||||
strcmp(name, "ActionID") == 0 ||
|
strcmp(name, "ActionID") == 0 ||
|
||||||
strcmp(name, "Name") == 0 ||
|
strcmp(name, "Blow_up") == 0 ||
|
||||||
strcmp(name, "BombItem") == 0 ||
|
strcmp(name, "BombItem") == 0 ))
|
||||||
strcmp(name, "Blow_up") == 0 ))
|
|
||||||
{
|
{
|
||||||
pData->curElement = ELEMENT_PROPERTY;
|
pData->curElement = ELEMENT_PROPERTY;
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ actionItemsEndElementHandle(void *userData, const XML_Char *name)
|
|||||||
else if(strcmp(name, "BombItem") == 0)
|
else if(strcmp(name, "BombItem") == 0)
|
||||||
{
|
{
|
||||||
pData->curElement = ELEMENT;
|
pData->curElement = ELEMENT;
|
||||||
pData->curActionItems.BombItem = (UINT32) atol(pData->szCharData);
|
pData->curActionItems.BombItem = (UINT16) atol(pData->szCharData);
|
||||||
}
|
}
|
||||||
pData->maxReadDepth--;
|
pData->maxReadDepth--;
|
||||||
}
|
}
|
||||||
@@ -221,7 +221,7 @@ BOOLEAN ReadInActionItems(STR fileName, BOOLEAN localizedVersion)
|
|||||||
return( TRUE );
|
return( TRUE );
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN WriteInActionItems( STR fileName)
|
BOOLEAN WriteInActionItems(STR fileName)
|
||||||
{
|
{
|
||||||
HWFILE hFile;
|
HWFILE hFile;
|
||||||
|
|
||||||
@@ -235,13 +235,14 @@ BOOLEAN WriteInActionItems( STR fileName)
|
|||||||
UINT32 cnt;
|
UINT32 cnt;
|
||||||
|
|
||||||
FilePrintf(hFile,"<ACTION_ITEM_LIST>\r\n");
|
FilePrintf(hFile,"<ACTION_ITEM_LIST>\r\n");
|
||||||
for(cnt = 0;cnt < 501;cnt++)
|
for(cnt = 0;cnt < /*501*/NUM_ACTIONITEMS;cnt++)
|
||||||
{
|
{
|
||||||
FilePrintf(hFile,"\t<ACTION_ITEM>\r\n");
|
FilePrintf(hFile,"\t<ACTION_ITEM>\r\n");
|
||||||
FilePrintf(hFile,"\t\t<uiIndex>%d</uiIndex>\r\n", cnt);
|
FilePrintf(hFile,"\t\t<uiIndex>%d</uiIndex>\r\n", cnt);
|
||||||
FilePrintf(hFile,"\t\t<Name>Empty action</Name>\r\n");
|
FilePrintf(hFile,"\t\t<Name>Empty action</Name>\r\n");
|
||||||
FilePrintf(hFile,"\t\t<ActionID>%d</ActionID>\r\n", ActionItemsValues[cnt].ActionID);
|
FilePrintf(hFile,"\t\t<ActionID>%d</ActionID>\r\n", ActionItemsValues[cnt].ActionID);
|
||||||
FilePrintf(hFile,"\t\t<Blow_Up>%d</Blow_Up>\r\n", ActionItemsValues[cnt].BlowUp);
|
FilePrintf(hFile,"\t\t<Blow_up>%d</Blow_up>\r\n", ActionItemsValues[cnt].BlowUp);
|
||||||
|
FilePrintf(hFile,"\t\t<BombItem>%d</BombItem>\r\n", ActionItemsValues[cnt].BombItem);
|
||||||
FilePrintf(hFile,"\t</ACTION_ITEM>\r\n");
|
FilePrintf(hFile,"\t</ACTION_ITEM>\r\n");
|
||||||
}
|
}
|
||||||
FilePrintf(hFile,"</ACTION_ITEM_LIST>\r\n");
|
FilePrintf(hFile,"</ACTION_ITEM_LIST>\r\n");
|
||||||
|
|||||||
@@ -77,6 +77,7 @@
|
|||||||
|
|
||||||
#include "LuaInitNPCs.h"
|
#include "LuaInitNPCs.h"
|
||||||
#include "Luaglobal.h"
|
#include "Luaglobal.h"
|
||||||
|
#include "Item Statistics.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
@@ -3117,7 +3118,7 @@ void PerformItemAction( INT32 sGridNo, OBJECTTYPE * pObj )
|
|||||||
|
|
||||||
#ifdef LUA_EXPLOSION_CONTROL
|
#ifdef LUA_EXPLOSION_CONTROL
|
||||||
|
|
||||||
for (UINT32 i = ACTION_ITEM_OPEN_DOOR; i <= ACTION_ITEM_NEW; i++ )
|
for (UINT32 i = ACTION_ITEM_OPEN_DOOR; i < NUM_ACTIONITEMS; /*= ACTION_ITEM_NEW;*/ i++ )
|
||||||
{
|
{
|
||||||
if ( (*pObj)[0]->data.misc.bActionValue == i )
|
if ( (*pObj)[0]->data.misc.bActionValue == i )
|
||||||
LetLuaPerformItemAction( i, sGridNo, 0 );
|
LetLuaPerformItemAction( i, sGridNo, 0 );
|
||||||
|
|||||||
Reference in New Issue
Block a user