Files
firestorm/Gameleap/code/mw4/Code/AI test/ai command.hpp
T
dicion af416960fa Translate Korean comments/strings to English; fix UTF-8 encoding across source tree
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).
2026-07-18 13:10:31 -05:00

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