parent
6db4ce4c24
commit
c132b4f350
File diff suppressed because it is too large
Load Diff
|
@ -1,317 +1,6 @@
|
||||||
#ifndef INTERPRETER_EXTRA_H
|
#ifndef INTERPRETER_EXTRA_H
|
||||||
#define INTERPRETER_EXTRA_H
|
#define INTERPRETER_EXTRA_H
|
||||||
|
|
||||||
#include "game_movie.h"
|
|
||||||
#include "geometry.h"
|
|
||||||
#include "interpreter.h"
|
|
||||||
#include "obj_types.h"
|
|
||||||
|
|
||||||
typedef enum ScriptError {
|
|
||||||
SCRIPT_ERROR_NOT_IMPLEMENTED,
|
|
||||||
SCRIPT_ERROR_OBJECT_IS_NULL,
|
|
||||||
SCRIPT_ERROR_CANT_MATCH_PROGRAM_TO_SID,
|
|
||||||
SCRIPT_ERROR_FOLLOWS,
|
|
||||||
SCRIPT_ERROR_COUNT,
|
|
||||||
} ScriptError;
|
|
||||||
|
|
||||||
typedef enum Metarule {
|
|
||||||
METARULE_SIGNAL_END_GAME = 13,
|
|
||||||
METARULE_FIRST_RUN = 14,
|
|
||||||
METARULE_ELEVATOR = 15,
|
|
||||||
METARULE_PARTY_COUNT = 16,
|
|
||||||
METARULE_AREA_KNOWN = 17,
|
|
||||||
METARULE_WHO_ON_DRUGS = 18,
|
|
||||||
METARULE_MAP_KNOWN = 19,
|
|
||||||
METARULE_IS_LOADGAME = 22,
|
|
||||||
METARULE_CAR_CURRENT_TOWN = 30,
|
|
||||||
METARULE_GIVE_CAR_TO_PARTY = 31,
|
|
||||||
METARULE_GIVE_CAR_GAS = 32,
|
|
||||||
METARULE_SKILL_CHECK_TAG = 40,
|
|
||||||
METARULE_DROP_ALL_INVEN = 42,
|
|
||||||
METARULE_INVEN_UNWIELD_WHO = 43,
|
|
||||||
METARULE_GET_WORLDMAP_XPOS = 44,
|
|
||||||
METARULE_GET_WORLDMAP_YPOS = 45,
|
|
||||||
METARULE_CURRENT_TOWN = 46,
|
|
||||||
METARULE_LANGUAGE_FILTER = 47,
|
|
||||||
METARULE_VIOLENCE_FILTER = 48,
|
|
||||||
METARULE_WEAPON_DAMAGE_TYPE = 49,
|
|
||||||
METARULE_CRITTER_BARTERS = 50,
|
|
||||||
METARULE_CRITTER_KILL_TYPE = 51,
|
|
||||||
METARULE_SET_CAR_CARRY_AMOUNT = 52,
|
|
||||||
METARULE_GET_CAR_CARRY_AMOUNT = 53,
|
|
||||||
} Metarule;
|
|
||||||
|
|
||||||
typedef enum Metarule3 {
|
|
||||||
METARULE3_CLR_FIXED_TIMED_EVENTS = 100,
|
|
||||||
METARULE3_MARK_SUBTILE = 101,
|
|
||||||
METARULE3_SET_WM_MUSIC = 102,
|
|
||||||
METARULE3_GET_KILL_COUNT = 103,
|
|
||||||
METARULE3_MARK_MAP_ENTRANCE = 104,
|
|
||||||
METARULE3_WM_SUBTILE_STATE = 105,
|
|
||||||
METARULE3_TILE_GET_NEXT_CRITTER = 106,
|
|
||||||
METARULE3_ART_SET_BASE_FID_NUM = 107,
|
|
||||||
METARULE3_TILE_SET_CENTER = 108,
|
|
||||||
// chem use preference
|
|
||||||
METARULE3_109 = 109,
|
|
||||||
// probably true if car is out of fuel
|
|
||||||
METARULE3_110 = 110,
|
|
||||||
// probably returns city index
|
|
||||||
METARULE3_111 = 111,
|
|
||||||
} Metarule3;
|
|
||||||
|
|
||||||
typedef enum CritterTrait {
|
|
||||||
CRITTER_TRAIT_PERK = 0,
|
|
||||||
CRITTER_TRAIT_OBJECT = 1,
|
|
||||||
CRITTER_TRAIT_TRAIT = 2,
|
|
||||||
} CritterTrait;
|
|
||||||
|
|
||||||
typedef enum CritterTraitObject {
|
|
||||||
CRITTER_TRAIT_OBJECT_AI_PACKET = 5,
|
|
||||||
CRITTER_TRAIT_OBJECT_TEAM = 6,
|
|
||||||
CRITTER_TRAIT_OBJECT_ROTATION = 10,
|
|
||||||
CRITTER_TRAIT_OBJECT_IS_INVISIBLE = 666,
|
|
||||||
CRITTER_TRAIT_OBJECT_GET_INVENTORY_WEIGHT = 669,
|
|
||||||
} CritterTraitObject;
|
|
||||||
|
|
||||||
// See [opGetCritterState].
|
|
||||||
typedef enum CritterState {
|
|
||||||
CRITTER_STATE_NORMAL = 0x00,
|
|
||||||
CRITTER_STATE_DEAD = 0x01,
|
|
||||||
CRITTER_STATE_PRONE = 0x02,
|
|
||||||
} CritterState;
|
|
||||||
|
|
||||||
enum {
|
|
||||||
INVEN_TYPE_WORN = 0,
|
|
||||||
INVEN_TYPE_RIGHT_HAND = 1,
|
|
||||||
INVEN_TYPE_LEFT_HAND = 2,
|
|
||||||
INVEN_TYPE_INV_COUNT = -2,
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef enum FloatingMessageType {
|
|
||||||
FLOATING_MESSAGE_TYPE_WARNING = -2,
|
|
||||||
FLOATING_MESSAGE_TYPE_COLOR_SEQUENCE = -1,
|
|
||||||
FLOATING_MESSAGE_TYPE_NORMAL = 0,
|
|
||||||
FLOATING_MESSAGE_TYPE_BLACK,
|
|
||||||
FLOATING_MESSAGE_TYPE_RED,
|
|
||||||
FLOATING_MESSAGE_TYPE_GREEN,
|
|
||||||
FLOATING_MESSAGE_TYPE_BLUE,
|
|
||||||
FLOATING_MESSAGE_TYPE_PURPLE,
|
|
||||||
FLOATING_MESSAGE_TYPE_NEAR_WHITE,
|
|
||||||
FLOATING_MESSAGE_TYPE_LIGHT_RED,
|
|
||||||
FLOATING_MESSAGE_TYPE_YELLOW,
|
|
||||||
FLOATING_MESSAGE_TYPE_WHITE,
|
|
||||||
FLOATING_MESSAGE_TYPE_GREY,
|
|
||||||
FLOATING_MESSAGE_TYPE_DARK_GREY,
|
|
||||||
FLOATING_MESSAGE_TYPE_LIGHT_GREY,
|
|
||||||
FLOATING_MESSAGE_TYPE_COUNT,
|
|
||||||
} FloatingMessageType;
|
|
||||||
|
|
||||||
typedef enum OpRegAnimFunc {
|
|
||||||
OP_REG_ANIM_FUNC_BEGIN = 1,
|
|
||||||
OP_REG_ANIM_FUNC_CLEAR = 2,
|
|
||||||
OP_REG_ANIM_FUNC_END = 3,
|
|
||||||
} OpRegAnimFunc;
|
|
||||||
|
|
||||||
extern char _Error_0[];
|
|
||||||
extern char _aCritter[];
|
|
||||||
|
|
||||||
extern const int dword_453F90[3];
|
|
||||||
extern const unsigned short word_453F9C[MOVIE_COUNT];
|
|
||||||
extern Rect stru_453FC0;
|
|
||||||
|
|
||||||
extern const char* _dbg_error_strs[SCRIPT_ERROR_COUNT];
|
|
||||||
extern const int _ftList[11];
|
|
||||||
extern char* _errStr;
|
|
||||||
extern int _last_color;
|
|
||||||
extern char* _strName;
|
|
||||||
|
|
||||||
extern int gGameDialogReactionOrFidget;
|
|
||||||
|
|
||||||
void scriptPredefinedError(Program* program, const char* name, int error);
|
|
||||||
void scriptError(const char* format, ...);
|
|
||||||
int tileIsVisible(int tile);
|
|
||||||
int _correctFidForRemovedItem(Object* a1, Object* a2, int a3);
|
|
||||||
void opGiveExpPoints(Program* program);
|
|
||||||
void opScrReturn(Program* program);
|
|
||||||
void opPlaySfx(Program* program);
|
|
||||||
void opSetMapStart(Program* program);
|
|
||||||
void opOverrideMapStart(Program* program);
|
|
||||||
void opHasSkill(Program* program);
|
|
||||||
void opUsingSkill(Program* program);
|
|
||||||
void opRollVsSkill(Program* program);
|
|
||||||
void opSkillContest(Program* program);
|
|
||||||
void opDoCheck(Program* program);
|
|
||||||
void opSuccess(Program* program);
|
|
||||||
void opCritical(Program* program);
|
|
||||||
void opHowMuch(Program* program);
|
|
||||||
void opMarkAreaKnown(Program* program);
|
|
||||||
void opReactionInfluence(Program* program);
|
|
||||||
void opRandom(Program* program);
|
|
||||||
void opRollDice(Program* program);
|
|
||||||
void opMoveTo(Program* program);
|
|
||||||
void opCreateObject(Program* program);
|
|
||||||
void opDestroyObject(Program* program);
|
|
||||||
void opDisplayMsg(Program* program);
|
|
||||||
void opScriptOverrides(Program* program);
|
|
||||||
void opObjectIsCarryingObjectWithPid(Program* program);
|
|
||||||
void opTileContainsObjectWithPid(Program* program);
|
|
||||||
void opGetSelf(Program* program);
|
|
||||||
void opGetSource(Program* program);
|
|
||||||
void opGetTarget(Program* program);
|
|
||||||
void opGetDude(Program* program);
|
|
||||||
void opGetObjectBeingUsed(Program* program);
|
|
||||||
void opGetLocalVar(Program* program);
|
|
||||||
void opSetLocalVar(Program* program);
|
|
||||||
void opGetMapVar(Program* program);
|
|
||||||
void opSetMapVar(Program* program);
|
|
||||||
void opGetGlobalVar(Program* program);
|
|
||||||
void opSetGlobalVar(Program* program);
|
|
||||||
void opGetScriptAction(Program* program);
|
|
||||||
void opGetObjectType(Program* program);
|
|
||||||
void opGetItemType(Program* program);
|
|
||||||
void opGetCritterStat(Program* program);
|
|
||||||
void opSetCritterStat(Program* program);
|
|
||||||
void opAnimateStand(Program* program);
|
|
||||||
void opAnimateStandReverse(Program* program);
|
|
||||||
void opAnimateMoveObjectToTile(Program* program);
|
|
||||||
void opTileInTileRect(Program* program);
|
|
||||||
void opMakeDayTime(Program* program);
|
|
||||||
void opTileDistanceBetween(Program* program);
|
|
||||||
void opTileDistanceBetweenObjects(Program* program);
|
|
||||||
void opGetObjectTile(Program* program);
|
|
||||||
void opGetTileInDirection(Program* program);
|
|
||||||
void opPickup(Program* program);
|
|
||||||
void opDrop(Program* program);
|
|
||||||
void opAddObjectToInventory(Program* program);
|
|
||||||
void opRemoveObjectFromInventory(Program* program);
|
|
||||||
void opWieldItem(Program* program);
|
|
||||||
void opUseObject(Program* program);
|
|
||||||
void opObjectCanSeeObject(Program* program);
|
|
||||||
void opAttackComplex(Program* program);
|
|
||||||
void opStartGameDialog(Program* program);
|
|
||||||
void opEndGameDialog(Program* program);
|
|
||||||
void opGameDialogReaction(Program* program);
|
|
||||||
void opMetarule3(Program* program);
|
|
||||||
void opSetMapMusic(Program* program);
|
|
||||||
void opSetObjectVisibility(Program* program);
|
|
||||||
void opLoadMap(Program* program);
|
|
||||||
void opWorldmapCitySetPos(Program* program);
|
|
||||||
void opSetExitGrids(Program* program);
|
|
||||||
void opAnimBusy(Program* program);
|
|
||||||
void opCritterHeal(Program* program);
|
|
||||||
void opSetLightLevel(Program* program);
|
|
||||||
void opGetGameTime(Program* program);
|
|
||||||
void opGetGameTimeInSeconds(Program* program);
|
|
||||||
void opGetObjectElevation(Program* program);
|
|
||||||
void opKillCritter(Program* program);
|
|
||||||
int _correctDeath(Object* critter, int anim, bool a3);
|
|
||||||
void opKillCritterType(Program* program);
|
|
||||||
void opCritterDamage(Program* program);
|
|
||||||
void opAddTimerEvent(Program* program);
|
|
||||||
void opRemoveTimerEvent(Program* program);
|
|
||||||
void opGameTicks(Program* program);
|
|
||||||
void opHasTrait(Program* program);
|
|
||||||
void opObjectCanHearObject(Program* program);
|
|
||||||
void opGameTimeHour(Program* program);
|
|
||||||
void opGetFixedParam(Program* program);
|
|
||||||
void opTileIsVisible(Program* program);
|
|
||||||
void opGameDialogSystemEnter(Program* program);
|
|
||||||
void opGetActionBeingUsed(Program* program);
|
|
||||||
void opGetCritterState(Program* program);
|
|
||||||
void opGameTimeAdvance(Program* program);
|
|
||||||
void opRadiationIncrease(Program* program);
|
|
||||||
void opRadiationDecrease(Program* program);
|
|
||||||
void opCritterAttemptPlacement(Program* program);
|
|
||||||
void opGetObjectPid(Program* program);
|
|
||||||
void opGetCurrentMap(Program* program);
|
|
||||||
void opCritterAddTrait(Program* program);
|
|
||||||
void opCritterRemoveTrait(Program* program);
|
|
||||||
void opGetProtoData(Program* program);
|
|
||||||
void opGetMessageString(Program* program);
|
|
||||||
void opCritterGetInventoryObject(Program* program);
|
|
||||||
void opSetObjectLightLevel(Program* program);
|
|
||||||
void opWorldmap(Program* program);
|
|
||||||
void _op_inven_cmds(Program* program);
|
|
||||||
void opFloatMessage(Program* program);
|
|
||||||
void opMetarule(Program* program);
|
|
||||||
void opAnim(Program* program);
|
|
||||||
void opObjectCarryingObjectByPid(Program* program);
|
|
||||||
void opRegAnimFunc(Program* program);
|
|
||||||
void opRegAnimAnimate(Program* program);
|
|
||||||
void opRegAnimAnimateReverse(Program* program);
|
|
||||||
void opRegAnimObjectMoveToObject(Program* program);
|
|
||||||
void opRegAnimObjectRunToObject(Program* program);
|
|
||||||
void opRegAnimObjectMoveToTile(Program* program);
|
|
||||||
void opRegAnimObjectRunToTile(Program* program);
|
|
||||||
void opPlayGameMovie(Program* program);
|
|
||||||
void opAddMultipleObjectsToInventory(Program* program);
|
|
||||||
void opRemoveMultipleObjectsFromInventory(Program* program);
|
|
||||||
void opGetMonth(Program* program);
|
|
||||||
void opGetDay(Program* program);
|
|
||||||
void opExplosion(Program* program);
|
|
||||||
void opGetDaysSinceLastVisit(Program* program);
|
|
||||||
void _op_gsay_start(Program* program);
|
|
||||||
void _op_gsay_end(Program* program);
|
|
||||||
void _op_gsay_reply(Program* program);
|
|
||||||
void _op_gsay_option(Program* program);
|
|
||||||
void _op_gsay_message(Program* program);
|
|
||||||
void _op_giq_option(Program* program);
|
|
||||||
void opPoison(Program* program);
|
|
||||||
void opGetPoison(Program* program);
|
|
||||||
void opPartyAdd(Program* program);
|
|
||||||
void opPartyRemove(Program* program);
|
|
||||||
void opRegAnimAnimateForever(Program* program);
|
|
||||||
void opCritterInjure(Program* program);
|
|
||||||
void opCombatIsInitialized(Program* program);
|
|
||||||
void _op_gdialog_barter(Program* program);
|
|
||||||
void opGetGameDifficulty(Program* program);
|
|
||||||
void opGetRunningBurningGuy(Program* program);
|
|
||||||
void _op_inven_unwield(Program* program);
|
|
||||||
void opObjectIsLocked(Program* program);
|
|
||||||
void opObjectLock(Program* program);
|
|
||||||
void opObjectUnlock(Program* program);
|
|
||||||
void opObjectIsOpen(Program* program);
|
|
||||||
void opObjectOpen(Program* program);
|
|
||||||
void opObjectClose(Program* program);
|
|
||||||
void opGameUiDisable(Program* program);
|
|
||||||
void opGameUiEnable(Program* program);
|
|
||||||
void opGameUiIsDisabled(Program* program);
|
|
||||||
void opFadeOut(Program* program);
|
|
||||||
void opFadeIn(Program* program);
|
|
||||||
void opItemCapsTotal(Program* program);
|
|
||||||
void opItemCapsAdjust(Program* program);
|
|
||||||
void _op_anim_action_frame(Program* program);
|
|
||||||
void opRegAnimPlaySfx(Program* program);
|
|
||||||
void opCritterModifySkill(Program* program);
|
|
||||||
void opSfxBuildCharName(Program* program);
|
|
||||||
void opSfxBuildAmbientName(Program* program);
|
|
||||||
void opSfxBuildInterfaceName(Program* program);
|
|
||||||
void opSfxBuildItemName(Program* program);
|
|
||||||
void opSfxBuildWeaponName(Program* program);
|
|
||||||
void opSfxBuildSceneryName(Program* program);
|
|
||||||
void opSfxBuildOpenName(Program* program);
|
|
||||||
void opAttackSetup(Program* program);
|
|
||||||
void opDestroyMultipleObjects(Program* program);
|
|
||||||
void opUseObjectOnObject(Program* program);
|
|
||||||
void opEndgameSlideshow(Program* program);
|
|
||||||
void opMoveObjectInventoryToObject(Program* program);
|
|
||||||
void opEndgameMovie(Program* program);
|
|
||||||
void opGetObjectFid(Program* program);
|
|
||||||
void opGetFidAnim(Program* program);
|
|
||||||
void opGetPartyMember(Program* program);
|
|
||||||
void opGetRotationToTile(Program* program);
|
|
||||||
void opJamLock(Program* program);
|
|
||||||
void opGameDialogSetBarterMod(Program* program);
|
|
||||||
void opGetCombatDifficulty(Program* program);
|
|
||||||
void opObjectOnScreen(Program* program);
|
|
||||||
void opCritterIsFleeing(Program* program);
|
|
||||||
void opCritterSetFleeState(Program* program);
|
|
||||||
void opTerminateCombat(Program* program);
|
|
||||||
void opDebugMessage(Program* program);
|
|
||||||
void opCritterStopAttacking(Program* program);
|
|
||||||
void opTileGetObjectWithPid(Program* program);
|
|
||||||
void opGetObjectName(Program* program);
|
|
||||||
void opGetPcStat(Program* program);
|
|
||||||
void _intExtraClose_();
|
void _intExtraClose_();
|
||||||
void _initIntExtra();
|
void _initIntExtra();
|
||||||
void _intExtraRemoveProgramReferences_();
|
void _intExtraRemoveProgramReferences_();
|
||||||
|
|
Loading…
Reference in New Issue