mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
* Fixing upper/lower case for includes types.h, zconf.h and zlib.h were renamed so that global includes like Types.h are not used.
440 lines
11 KiB
C
440 lines
11 KiB
C
#pragma once
|
|
|
|
#include "builddefines.h"
|
|
|
|
//-----------------------------------------------
|
|
//
|
|
// civilian "sub teams":
|
|
enum
|
|
{
|
|
NON_CIV_GROUP = 0,
|
|
REBEL_CIV_GROUP,
|
|
KINGPIN_CIV_GROUP,
|
|
SANMONA_ARMS_GROUP,
|
|
ANGELS_GROUP,
|
|
BEGGARS_CIV_GROUP,
|
|
TOURISTS_CIV_GROUP,
|
|
ALMA_MILITARY_CIV_GROUP,
|
|
DOCTORS_CIV_GROUP,
|
|
COUPLE1_CIV_GROUP,
|
|
HICKS_CIV_GROUP,
|
|
WARDEN_CIV_GROUP,
|
|
JUNKYARD_CIV_GROUP,
|
|
FACTORY_KIDS_GROUP,
|
|
QUEENS_CIV_GROUP,
|
|
UNNAMED_CIV_GROUP_15,
|
|
UNNAMED_CIV_GROUP_16,
|
|
UNNAMED_CIV_GROUP_17,
|
|
UNNAMED_CIV_GROUP_18,
|
|
UNNAMED_CIV_GROUP_19,
|
|
ASSASSIN_CIV_GROUP, // Flugente: enemy assassins belong to this group
|
|
POW_PRISON_CIV_GROUP, // Flugente: prisoners of war the player caught are in this group
|
|
UNNAMED_CIV_GROUP_22,
|
|
UNNAMED_CIV_GROUP_23,
|
|
VOLUNTEER_CIV_GROUP, // Flugente: civilians that the player recruited
|
|
BOUNTYHUNTER_CIV_GROUP, // Flugente: hostile bounty hunters
|
|
DOWNEDPILOT_CIV_GROUP, // Flugente: downed pilots
|
|
SCIENTIST_GROUP, // Flugente: enemy civilian personnel
|
|
RADAR_TECHNICIAN_GROUP,
|
|
AIRPORT_STAFF_GROUP,
|
|
BARRACK_STAFF_GROUP,
|
|
FACTORY_GROUP,
|
|
ADMINISTRATIVE_STAFF_GROUP,
|
|
LOYAL_CIV_GROUP, // civil population deeply loyal to the queen
|
|
BLACKMARKET_GROUP, // black market dealer and bodyguards
|
|
UNNAMED_CIV_GROUP_35,
|
|
UNNAMED_CIV_GROUP_36,
|
|
UNNAMED_CIV_GROUP_37,
|
|
UNNAMED_CIV_GROUP_38,
|
|
UNNAMED_CIV_GROUP_39,
|
|
UNNAMED_CIV_GROUP_40,
|
|
UNNAMED_CIV_GROUP_41,
|
|
UNNAMED_CIV_GROUP_42,
|
|
UNNAMED_CIV_GROUP_43,
|
|
UNNAMED_CIV_GROUP_44,
|
|
UNNAMED_CIV_GROUP_45,
|
|
UNNAMED_CIV_GROUP_46,
|
|
UNNAMED_CIV_GROUP_47,
|
|
UNNAMED_CIV_GROUP_48,
|
|
UNNAMED_CIV_GROUP_49,
|
|
UNNAMED_CIV_GROUP_50,
|
|
UNNAMED_CIV_GROUP_51,
|
|
UNNAMED_CIV_GROUP_52,
|
|
UNNAMED_CIV_GROUP_53,
|
|
UNNAMED_CIV_GROUP_54,
|
|
UNNAMED_CIV_GROUP_55,
|
|
UNNAMED_CIV_GROUP_56,
|
|
UNNAMED_CIV_GROUP_57,
|
|
UNNAMED_CIV_GROUP_58,
|
|
UNNAMED_CIV_GROUP_59,
|
|
UNNAMED_CIV_GROUP_60,
|
|
UNNAMED_CIV_GROUP_61,
|
|
UNNAMED_CIV_GROUP_62,
|
|
UNNAMED_CIV_GROUP_63,
|
|
UNNAMED_CIV_GROUP_64,
|
|
UNNAMED_CIV_GROUP_65,
|
|
UNNAMED_CIV_GROUP_66,
|
|
UNNAMED_CIV_GROUP_67,
|
|
UNNAMED_CIV_GROUP_68,
|
|
UNNAMED_CIV_GROUP_69,
|
|
UNNAMED_CIV_GROUP_70,
|
|
UNNAMED_CIV_GROUP_71,
|
|
UNNAMED_CIV_GROUP_72,
|
|
UNNAMED_CIV_GROUP_73,
|
|
UNNAMED_CIV_GROUP_74,
|
|
UNNAMED_CIV_GROUP_75,
|
|
UNNAMED_CIV_GROUP_76,
|
|
UNNAMED_CIV_GROUP_77,
|
|
UNNAMED_CIV_GROUP_78,
|
|
UNNAMED_CIV_GROUP_79,
|
|
UNNAMED_CIV_GROUP_80,
|
|
UNNAMED_CIV_GROUP_81,
|
|
UNNAMED_CIV_GROUP_82,
|
|
UNNAMED_CIV_GROUP_83,
|
|
UNNAMED_CIV_GROUP_84,
|
|
UNNAMED_CIV_GROUP_85,
|
|
UNNAMED_CIV_GROUP_86,
|
|
UNNAMED_CIV_GROUP_87,
|
|
UNNAMED_CIV_GROUP_88,
|
|
UNNAMED_CIV_GROUP_89,
|
|
UNNAMED_CIV_GROUP_90,
|
|
UNNAMED_CIV_GROUP_91,
|
|
UNNAMED_CIV_GROUP_92,
|
|
UNNAMED_CIV_GROUP_93,
|
|
UNNAMED_CIV_GROUP_94,
|
|
UNNAMED_CIV_GROUP_95,
|
|
UNNAMED_CIV_GROUP_96,
|
|
UNNAMED_CIV_GROUP_97,
|
|
UNNAMED_CIV_GROUP_98,
|
|
UNNAMED_CIV_GROUP_99,
|
|
UNNAMED_CIV_GROUP_100,
|
|
UNNAMED_CIV_GROUP_101,
|
|
UNNAMED_CIV_GROUP_102,
|
|
UNNAMED_CIV_GROUP_103,
|
|
UNNAMED_CIV_GROUP_104,
|
|
UNNAMED_CIV_GROUP_105,
|
|
UNNAMED_CIV_GROUP_106,
|
|
UNNAMED_CIV_GROUP_107,
|
|
UNNAMED_CIV_GROUP_108,
|
|
UNNAMED_CIV_GROUP_109,
|
|
UNNAMED_CIV_GROUP_110,
|
|
UNNAMED_CIV_GROUP_111,
|
|
UNNAMED_CIV_GROUP_112,
|
|
UNNAMED_CIV_GROUP_113,
|
|
UNNAMED_CIV_GROUP_114,
|
|
UNNAMED_CIV_GROUP_115,
|
|
UNNAMED_CIV_GROUP_116,
|
|
UNNAMED_CIV_GROUP_117,
|
|
UNNAMED_CIV_GROUP_118,
|
|
UNNAMED_CIV_GROUP_119,
|
|
UNNAMED_CIV_GROUP_120,
|
|
UNNAMED_CIV_GROUP_121,
|
|
UNNAMED_CIV_GROUP_122,
|
|
UNNAMED_CIV_GROUP_123,
|
|
UNNAMED_CIV_GROUP_124,
|
|
UNNAMED_CIV_GROUP_125,
|
|
UNNAMED_CIV_GROUP_126,
|
|
UNNAMED_CIV_GROUP_127,
|
|
UNNAMED_CIV_GROUP_128,
|
|
UNNAMED_CIV_GROUP_129,
|
|
UNNAMED_CIV_GROUP_130,
|
|
UNNAMED_CIV_GROUP_131,
|
|
UNNAMED_CIV_GROUP_132,
|
|
UNNAMED_CIV_GROUP_133,
|
|
UNNAMED_CIV_GROUP_134,
|
|
UNNAMED_CIV_GROUP_135,
|
|
UNNAMED_CIV_GROUP_136,
|
|
UNNAMED_CIV_GROUP_137,
|
|
UNNAMED_CIV_GROUP_138,
|
|
UNNAMED_CIV_GROUP_139,
|
|
UNNAMED_CIV_GROUP_140,
|
|
|
|
UNNAMED_CIV_GROUP_141,
|
|
UNNAMED_CIV_GROUP_142,
|
|
UNNAMED_CIV_GROUP_143,
|
|
UNNAMED_CIV_GROUP_144,
|
|
UNNAMED_CIV_GROUP_145,
|
|
UNNAMED_CIV_GROUP_146,
|
|
UNNAMED_CIV_GROUP_147,
|
|
UNNAMED_CIV_GROUP_148,
|
|
UNNAMED_CIV_GROUP_149,
|
|
UNNAMED_CIV_GROUP_150,
|
|
UNNAMED_CIV_GROUP_151,
|
|
UNNAMED_CIV_GROUP_152,
|
|
UNNAMED_CIV_GROUP_153,
|
|
UNNAMED_CIV_GROUP_154,
|
|
UNNAMED_CIV_GROUP_155,
|
|
UNNAMED_CIV_GROUP_156,
|
|
UNNAMED_CIV_GROUP_157,
|
|
UNNAMED_CIV_GROUP_158,
|
|
UNNAMED_CIV_GROUP_159,
|
|
UNNAMED_CIV_GROUP_160,
|
|
UNNAMED_CIV_GROUP_161,
|
|
UNNAMED_CIV_GROUP_162,
|
|
UNNAMED_CIV_GROUP_163,
|
|
UNNAMED_CIV_GROUP_164,
|
|
UNNAMED_CIV_GROUP_165,
|
|
UNNAMED_CIV_GROUP_166,
|
|
UNNAMED_CIV_GROUP_167,
|
|
UNNAMED_CIV_GROUP_168,
|
|
UNNAMED_CIV_GROUP_169,
|
|
UNNAMED_CIV_GROUP_170,
|
|
|
|
UNNAMED_CIV_GROUP_171,
|
|
UNNAMED_CIV_GROUP_172,
|
|
UNNAMED_CIV_GROUP_173,
|
|
UNNAMED_CIV_GROUP_174,
|
|
UNNAMED_CIV_GROUP_175,
|
|
UNNAMED_CIV_GROUP_176,
|
|
UNNAMED_CIV_GROUP_177,
|
|
UNNAMED_CIV_GROUP_178,
|
|
UNNAMED_CIV_GROUP_179,
|
|
UNNAMED_CIV_GROUP_180,
|
|
UNNAMED_CIV_GROUP_181,
|
|
UNNAMED_CIV_GROUP_182,
|
|
UNNAMED_CIV_GROUP_183,
|
|
UNNAMED_CIV_GROUP_184,
|
|
UNNAMED_CIV_GROUP_185,
|
|
UNNAMED_CIV_GROUP_186,
|
|
UNNAMED_CIV_GROUP_187,
|
|
UNNAMED_CIV_GROUP_188,
|
|
UNNAMED_CIV_GROUP_189,
|
|
UNNAMED_CIV_GROUP_190,
|
|
UNNAMED_CIV_GROUP_191,
|
|
UNNAMED_CIV_GROUP_192,
|
|
UNNAMED_CIV_GROUP_193,
|
|
UNNAMED_CIV_GROUP_194,
|
|
UNNAMED_CIV_GROUP_195,
|
|
UNNAMED_CIV_GROUP_196,
|
|
UNNAMED_CIV_GROUP_197,
|
|
UNNAMED_CIV_GROUP_198,
|
|
UNNAMED_CIV_GROUP_199,
|
|
UNNAMED_CIV_GROUP_200,
|
|
|
|
UNNAMED_CIV_GROUP_201,
|
|
UNNAMED_CIV_GROUP_202,
|
|
UNNAMED_CIV_GROUP_203,
|
|
UNNAMED_CIV_GROUP_204,
|
|
UNNAMED_CIV_GROUP_205,
|
|
UNNAMED_CIV_GROUP_206,
|
|
UNNAMED_CIV_GROUP_207,
|
|
UNNAMED_CIV_GROUP_208,
|
|
UNNAMED_CIV_GROUP_209,
|
|
UNNAMED_CIV_GROUP_210,
|
|
UNNAMED_CIV_GROUP_211,
|
|
UNNAMED_CIV_GROUP_212,
|
|
UNNAMED_CIV_GROUP_213,
|
|
UNNAMED_CIV_GROUP_214,
|
|
UNNAMED_CIV_GROUP_215,
|
|
UNNAMED_CIV_GROUP_216,
|
|
UNNAMED_CIV_GROUP_217,
|
|
UNNAMED_CIV_GROUP_218,
|
|
UNNAMED_CIV_GROUP_219,
|
|
UNNAMED_CIV_GROUP_220,
|
|
UNNAMED_CIV_GROUP_221,
|
|
UNNAMED_CIV_GROUP_222,
|
|
UNNAMED_CIV_GROUP_223,
|
|
UNNAMED_CIV_GROUP_224,
|
|
UNNAMED_CIV_GROUP_225,
|
|
UNNAMED_CIV_GROUP_226,
|
|
UNNAMED_CIV_GROUP_227,
|
|
UNNAMED_CIV_GROUP_228,
|
|
UNNAMED_CIV_GROUP_229,
|
|
UNNAMED_CIV_GROUP_230,
|
|
|
|
UNNAMED_CIV_GROUP_231,
|
|
UNNAMED_CIV_GROUP_232,
|
|
UNNAMED_CIV_GROUP_233,
|
|
UNNAMED_CIV_GROUP_234,
|
|
UNNAMED_CIV_GROUP_235,
|
|
UNNAMED_CIV_GROUP_236,
|
|
UNNAMED_CIV_GROUP_237,
|
|
UNNAMED_CIV_GROUP_238,
|
|
UNNAMED_CIV_GROUP_239,
|
|
UNNAMED_CIV_GROUP_240,
|
|
UNNAMED_CIV_GROUP_241,
|
|
UNNAMED_CIV_GROUP_242,
|
|
UNNAMED_CIV_GROUP_243,
|
|
UNNAMED_CIV_GROUP_244,
|
|
UNNAMED_CIV_GROUP_245,
|
|
UNNAMED_CIV_GROUP_246,
|
|
UNNAMED_CIV_GROUP_247,
|
|
UNNAMED_CIV_GROUP_248,
|
|
UNNAMED_CIV_GROUP_249,
|
|
UNNAMED_CIV_GROUP_250,
|
|
|
|
UNNAMED_CIV_GROUP_251,
|
|
UNNAMED_CIV_GROUP_252,
|
|
UNNAMED_CIV_GROUP_253,
|
|
UNNAMED_CIV_GROUP_254,
|
|
NUM_CIV_GROUPS
|
|
};
|
|
|
|
#define CIV_GROUP_NEUTRAL 0
|
|
#define CIV_GROUP_WILL_EVENTUALLY_BECOME_HOSTILE 1
|
|
#define CIV_GROUP_WILL_BECOME_HOSTILE 2
|
|
#define CIV_GROUP_HOSTILE 3
|
|
|
|
|
|
#ifdef JA2EDITOR
|
|
|
|
#ifndef __EDITORMERCS_H
|
|
#define __EDITORMERCS_H
|
|
|
|
//Merc editing modes. These are used to determine which buttons to show and hide.
|
|
enum
|
|
{
|
|
MERC_NOMODE, //used for shutting down mercs tab, to extract any changed information
|
|
|
|
MERC_GETITEMMODE, //when selecting a specific piece of inventory from inventorymode
|
|
|
|
MERC_TEAMMODE, //selecting a team with no merc selected.
|
|
MERC_BASICMODE, //basic placement mode
|
|
|
|
MERC_GENERALMODE, //detailed placement mode for general information and NPC info
|
|
MERC_ATTRIBUTEMODE, //detailed placement mode for specifying attributes
|
|
MERC_INVENTORYMODE, //detailed placement mode for specifying inventory
|
|
MERC_APPEARANCEMODE, //detailed placement mode for specifying appearance
|
|
MERC_PROFILEMODE, //specifying a valid profile index will generate the merc automatically.
|
|
MERC_SCHEDULEMODE, //specifying a schedule for that particular individual
|
|
};
|
|
|
|
extern UINT8 gubCurrMercMode, gubPrevMercMode;
|
|
|
|
#define EDIT_NUM_COLORS 4
|
|
#define EDIT_COLOR_HEAD 0
|
|
#define EDIT_COLOR_PANTS 1
|
|
#define EDIT_COLOR_SKIN 2
|
|
#define EDIT_COLOR_VEST 3
|
|
#define EDIT_MERC_NONE 0
|
|
#define EDIT_MERC_DEC_STAT 1
|
|
#define EDIT_MERC_INC_STAT 2
|
|
#define EDIT_MERC_PREV_ORDER 3
|
|
#define EDIT_MERC_NEXT_ORDER 4
|
|
#define EDIT_MERC_PREV_ATT 5
|
|
#define EDIT_MERC_NEXT_ATT 6
|
|
#define EDIT_MERC_SET_DIR 7
|
|
#define EDIT_MERC_FIND 8
|
|
#define EDIT_MERC_DONE 9
|
|
#define EDIT_MERC_TO_COLOR 10
|
|
#define EDIT_MERC_TO_STATS 11
|
|
#define EDIT_MERC_PREV_COLOR 12
|
|
#define EDIT_MERC_NEXT_COLOR 13
|
|
|
|
#define NUM_MERC_BUTTONS 40
|
|
|
|
#define NUM_DIFF_LVLS 5
|
|
|
|
extern STR16 zDiffNames[NUM_DIFF_LVLS];
|
|
extern INT16 sCurBaseDiff;
|
|
extern INT16 gsSelectedMercID;
|
|
extern INT32 gsSelectedMercGridNo;
|
|
extern UINT8 gubCurrMercMode;
|
|
|
|
enum _ForUseWithIndicateSelectedMerc
|
|
{
|
|
SELECT_NEXT_CREATURE = -7,
|
|
SELECT_NEXT_REBEL = -6,
|
|
SELECT_NEXT_CIV = -5,
|
|
SELECT_NEXT_ENEMY = -4,
|
|
SELECT_NEXT_TEAMMATE = -3,
|
|
SELECT_NEXT_MERC = -2,
|
|
SELECT_NO_MERC = -1
|
|
// >= 0 select merc with matching ID
|
|
};
|
|
|
|
void IndicateSelectedMerc( INT16 sID );
|
|
|
|
void GameInitEditorMercsInfo();
|
|
void GameShutdownEditorMercsInfo();
|
|
void EntryInitEditorMercsInfo();
|
|
void UpdateMercsInfo();
|
|
|
|
void ProcessMercEditing();
|
|
void AddMercToWorld( INT32 iMapIndex );
|
|
void HandleRightClickOnMerc( INT32 iMapIndex );
|
|
void SetMercEditingMode( UINT8 ubNewMode );
|
|
|
|
void ResetAllMercPositions();
|
|
|
|
void EraseMercWaypoint();
|
|
void AddMercWaypoint( INT32 iMapIndex );
|
|
|
|
void SetEnemyColorCode( UINT8 ubColorCode );
|
|
|
|
void SpecifyEntryPoint(INT32 iMapIndex);//dnl ch41 290909
|
|
|
|
//Modify stats of current soldiers
|
|
void SetMercOrders( INT8 bOrders );
|
|
void SetMercAttitude( INT8 bAttitude );
|
|
void SetMercDirection( INT8 bDirection );
|
|
void SetMercRelativeEquipment( INT8 bLevel );
|
|
void SetMercRelativeAttributes( INT8 bLevel );
|
|
|
|
void DeleteSelectedMerc();
|
|
|
|
void CreateEditMercWindow( void );
|
|
void DisplayEditMercWindow( void );
|
|
INT32 IsMercHere( INT32 iMapIndex );
|
|
|
|
void ExtractCurrentMercModeInfo( BOOLEAN fKillTextInputMode );
|
|
|
|
void SetMercEditability( BOOLEAN fEditable );
|
|
|
|
void HandleMercInventoryPanel( INT16 sX, INT16 sY, INT8 bEvent );
|
|
|
|
extern UINT16 gusMercsNewItemIndex;
|
|
extern BOOLEAN gfRenderMercInfo;
|
|
|
|
//NOTE: The editor uses these enumerations, so please update the text as well if you modify or
|
|
// add new groups. Try to abbreviate the team name as much as possible. The text is in
|
|
// EditorMercs.c
|
|
extern CHAR16 gszCivGroupNames[ NUM_CIV_GROUPS ][ 128 ];
|
|
//
|
|
//-----------------------------------------------
|
|
|
|
void ChangeCivGroup( UINT8 ubNewCivGroup );
|
|
|
|
#define MERCINV_LGSLOT_WIDTH 48
|
|
#define MERCINV_SMSLOT_WIDTH 24
|
|
#define MERCINV_SLOT_HEIGHT 18
|
|
|
|
extern BOOLEAN gfRoofPlacement;
|
|
|
|
extern void SetEnemyDroppableStatus( UINT32 uiSlot, BOOLEAN fDroppable );
|
|
|
|
void RenderMercStrings();
|
|
|
|
extern BOOLEAN gfShowPlayers;
|
|
extern BOOLEAN gfShowEnemies;
|
|
extern BOOLEAN gfShowCreatures;
|
|
extern BOOLEAN gfShowRebels;
|
|
extern BOOLEAN gfShowCivilians;
|
|
void SetMercTeamVisibility( INT8 bTeam, BOOLEAN fVisible );
|
|
|
|
extern UINT8 gubCurrentScheduleActionIndex;
|
|
extern BOOLEAN gfSingleAction;
|
|
extern BOOLEAN gfUseScheduleData2;
|
|
|
|
void UpdateScheduleAction( UINT8 ubNewAction );
|
|
void FindScheduleGridNo( UINT8 ubScheduleData );
|
|
void ClearCurrentSchedule();
|
|
void CancelCurrentScheduleAction();
|
|
void RegisterCurrentScheduleAction( INT32 iMapIndex );
|
|
void StartScheduleAction();
|
|
|
|
void InitDetailedPlacementForMerc();
|
|
void KillDetailedPlacementForMerc();
|
|
|
|
void CopyMercPlacement( INT32 iMapIndex );
|
|
void PasteMercPlacement( INT32 iMapIndex );
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|