Korean translation (84 source files, 876 lines): - Translated all EUC-KR/CP949 Korean developer comments to English across 84 source files in Gameleap/code/. Zero Korean bytes remain outside the intentional font-table headers (D3FFontEdit2/fontedit all.h etc.). - Comment markers: //상훈 앞/뒤 -> //sanghoon begin/end (Sang-hun's code region markers); //상훈짱 begin/end, //상훈.. variants; // 鉉 -> // hyun (second developer's markers); // 鉉 - start/end patterns. - Functional string translations in recscore.cpp (mw4 + mw4print copies): body-part return values (왼발/오른발/etc. -> Left Leg/Right Leg/etc.), kill-announcer format strings (~30 entries), and the nonmfc.h assert dialog. - GosView profiler: 킪 -> us (microseconds) in timing display strings. - Network/socket code (ctcl.cpp, mugsocs.h, ctime.cpp across Launcher/ MW4Application/MW4GameEd2/AnimScript): state-machine comments, socket ID comments, login/session management comments. - render.hpp CHSH_Device member comments; GUIRadarManager.cpp drawing routine comments; hudchat/hudcomp2/huddamage/hudmap/hudweapon/hudtarg HUD component comments. - DXRasterizer.cpp: cleaned residual U+FFFD replacement characters left from a prior partial encoding conversion. UTF-8 encoding cleanup (76+ files): - Latin-1 single bytes converted to proper UTF-8 multi-byte sequences: © (0xA9) in 3dsmax4/Maxscrpt Autodesk/Wainwright copyright headers, ® (0xAE) in gosHelp/Remote.cpp, · (0xB7) bullet points in ai command.hpp, Û (0xDB) in SafeChain_Test.cpp tool header, ß (0xDF) in AnimationSuite version strings (8 files). - Font lookup tables (D3FFontEdit2/, fontedit/ *.h) intentionally left as-is: raw byte values are C array data, not text. Language DLL: - Replaced Gameleap/mw4/Language.dll (original Korean binary) and MW4/Language.dll with freshly built English version from Language - Win32 English config (Language.dsp). Fixes Korean button labels in the GameOS exception/crash dialog (??? ??... / ?? / ??? were showing instead of More Details.../Continue/Exit).
127 lines
3.4 KiB
C++
127 lines
3.4 KiB
C++
#ifndef __AICOMMANDHPP__
|
|
#define __AICOMMANDHPP__
|
|
|
|
enum AICOMMAND { MOVE_CMD,SAY_CMD,STANCE_CMD,TURN_CMD,SEND_CMD,
|
|
PLACEMENT_CMD,ATTACK_CMD,TRADE_CMD,SPECIAL_CMD,ADJUST_CMD,REMOVE_CMD};
|
|
|
|
typedef struct
|
|
{
|
|
double speed; // speed to move there
|
|
void *curpath; // current path to follow, probably just a list of points
|
|
UINT inpath; // where in path list we are
|
|
double sx,sy,sz; // start location
|
|
double dx,dy,dz; // destination location
|
|
UINT sPosture; // starting posture
|
|
UINT dPosture; // destination posture
|
|
double dFacing; // destination facing
|
|
} MoveCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
char *text; // text to say
|
|
UINT tone; // tone of voice
|
|
UINT intext; // where in text we are
|
|
} SayCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
UINT stance; // stance to enter
|
|
UINT curpos; // phase of changing stance
|
|
} StanceCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
bool absolute; // true if using the facing variable
|
|
double facing; // facing to turn to
|
|
double speed; // speed to turn
|
|
AI *turnto; // object to face, instead of absolute facing
|
|
} TurnCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
UINT type; // type of information to send
|
|
AI *dest; // object to send the data to
|
|
UINT method; // how to send the data, means how much is sent at a time
|
|
UINT where; // where in data being sent we are
|
|
} SendCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
double x,y,z; // location to be in
|
|
double facing; // direction to face
|
|
UINT pos; // position of various parts in location
|
|
UINT where; // where in movement we are
|
|
} PlacementCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
AI *who; // object to attack
|
|
UINT with; // what to attack with
|
|
UINT action; // type of attack
|
|
UINT where; // where in sequence we are
|
|
} AttackCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
AI *who; // object to trade with
|
|
AI *what; // object to trade
|
|
UINT how; // how we want to perform the trade (hand, magic, etc)
|
|
} TradeCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
UINT action; // special action to perform
|
|
UINT where; // where in sequence we are
|
|
} SpecialCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
//· code for changing sort order or priority levels
|
|
//· new sort order
|
|
//· new priority level
|
|
//· priority set to remove
|
|
//· priority set to add
|
|
} AdjustCommandData;
|
|
|
|
typedef struct
|
|
{
|
|
//· command area from which to remove command
|
|
//· command id of command to remove
|
|
//· other info to pick what command to remove
|
|
} RemoveCommandData;
|
|
|
|
union CommandUnion
|
|
{
|
|
MoveCommandData moveData;
|
|
SayCommandData sayData;
|
|
StanceCommandData stanceData;
|
|
TurnCommandData turnData;
|
|
SendCommandData sendData;
|
|
PlacementCommandData placementData;
|
|
AttackCommandData attackData;
|
|
TradeCommandData tradeData;
|
|
SpecialCommandData specialData;
|
|
AdjustCommandData adjustData;
|
|
RemoveCommandData removeData;
|
|
};
|
|
|
|
struct CommandEntry{
|
|
static FixedHeap<CommandEntry> m_EmptyCommand;
|
|
|
|
AICOMMAND commandType;
|
|
UINT validFor;
|
|
UINT priority;
|
|
AIAREA from;
|
|
CommandUnion commandData;
|
|
CommandEntry *next,*prev;
|
|
CommandEntry *sort_next,*sort_prev;
|
|
CommandEntry *chain_next,*chain_prev;
|
|
|
|
static CommandEntry *GetBlankCommand (void) { return (CommandEntry *) m_EmptyCommand.Alloc (); }
|
|
static void DoneCommand (CommandEntry *oldknow) { m_EmptyCommand.Free (oldknow); }
|
|
|
|
void *operator new (size_t size) {return GetBlankCommand (); }
|
|
void operator delete (void *value,size_t size) { DoneCommand ((CommandEntry *) value); }
|
|
};
|
|
|
|
#endif |