Files
sslc/opextra.h
T
NovaRain 7d5d93aa57 Added new opcodes sfall_func7 and sfall_func8
Added skipping UTF-8 BOM in the script.
2020-12-22 16:56:05 +08:00

616 lines
11 KiB
C

#ifndef _OPEXTRA_H_
#define _OPEXTRA_H_
#ifndef FALLOUT_VERSION
#define FALLOUT_VERSION 2
#endif
#include "oplib.h"
enum {
// define any user-specific opcodes here, starting at O_END_LIB
// ending with O_END_OP
O_GIVE_EXP_POINTS = O_END_LIB,
O_SCR_RETURN,
O_PLAY_SFX,
O_OBJ_NAME,
O_SFX_BUILD_OPEN_NAME,
O_GET_PC_STAT,
O_TILE_CONTAINS_PID_OBJ,
O_SET_MAP_START,
O_OVERRIDE_MAP_START,
O_HAS_SKILL,
O_USING_SKILL,
O_ROLL_VS_SKILL,
O_SKILL_CONTEST,
O_DO_CHECK,
O_IS_SUCCESS,
O_IS_CRITICAL,
O_HOW_MUCH,
#if (FALLOUT_VERSION == 2)
O_MARK_AREA_KNOWN,
#else
O_REACTION,
#endif
O_REACTION_INFLUENCE,
O_RANDOM,
O_ROLL_DICE,
O_MOVE_TO,
O_CREATE_OBJECT_SID,
O_DISPLAY_MSG,
O_SCRIPT_OVERRIDES,
O_OBJ_IS_CARRYING_OBJ_PID,
O_TILE_CONTAINS_OBJ_PID,
O_SELF_OBJ,
O_SOURCE_OBJ,
O_TARGET_OBJ,
O_DUDE_OBJ,
O_OBJ_BEING_USED_WITH,
O_LOCAL_VAR,
O_SET_LOCAL_VAR,
O_MAP_VAR,
O_SET_MAP_VAR,
O_GLOBAL_VAR,
O_SET_GLOBAL_VAR,
O_SCRIPT_ACTION,
O_OBJ_TYPE,
O_OBJ_ITEM_SUBTYPE,
O_GET_CRITTER_STAT,
O_SET_CRITTER_STAT,
O_ANIMATE_STAND_OBJ,
O_ANIMATE_STAND_REVERSE_OBJ,
O_ANIMATE_MOVE_OBJ_TO_TILE,
#if (FALLOUT_VERSION == 2)
O_TILE_IN_TILE_RECT,
#else
O_ANIMATE_JUMP,
#endif
O_ATTACK_COMPLEX,
O_MAKE_DAYTIME,
O_TILE_DISTANCE,
O_TILE_DISTANCE_OBJS,
O_TILE_NUM,
O_TILE_NUM_IN_DIRECTION,
O_PICKUP_OBJ,
O_DROP_OBJ,
O_ADD_OBJ_TO_INVEN,
O_RM_OBJ_FROM_INVEN,
O_WIELD_OBJ_CRITTER,
O_USE_OBJ,
O_OBJ_CAN_SEE_OBJ,
O_ATTACK,
O_START_GDIALOG,
O_END_DIALOGUE,
O_DIALOGUE_REACTION,
#if (FALLOUT_VERSION == 2)
O_METARULE3,
O_SET_MAP_MUSIC,
#else
O_TURN_OFF_OBJS_IN_AREA,
O_TURN_ON_OBJS_IN_AREA,
#endif
O_SET_OBJ_VISIBILITY,
O_LOAD_MAP,
#if (FALLOUT_VERSION == 2)
O_WM_AREA_SET_POS,
O_SET_EXIT_GRIDS,
#else
O_BARTER_OFFER,
O_BARTER_ASKING,
#endif
O_ANIM_BUSY,
O_CRITTER_HEAL,
O_SET_LIGHT_LEVEL,
O_GAME_TIME,
O_GAME_TIME_IN_SECONDS,
O_ELEVATION,
O_KILL_CRITTER,
O_KILL_CRITTER_TYPE,
O_CRITTER_DMG,
O_ADD_TIMER_EVENT,
O_RM_TIMER_EVENT,
O_GAME_TICKS,
O_HAS_TRAIT,
O_DESTROY_OBJECT,
O_OBJ_CAN_HEAR_OBJ,
O_GAME_TIME_HOUR,
O_FIXED_PARAM,
O_TILE_IS_VISIBLE,
O_DIALOGUE_SYSTEM_ENTER,
O_ACTION_BEING_USED,
O_CRITTER_STATE,
O_GAME_TIME_ADVANCE,
O_RADIATION_INC,
O_RADIATION_DEC,
O_CRITTER_ATTEMPT_PLACEMENT,
O_OBJ_PID,
O_CUR_MAP_INDEX,
O_CRITTER_ADD_TRAIT,
O_CRITTER_RM_TRAIT,
O_PROTO_DATA,
O_MESSAGE_STR,
O_CRITTER_INVEN_OBJ,
O_OBJ_SET_LIGHT_LEVEL,
O_WORLD_MAP,
#if (FALLOUT_VERSION == 2)
O_INVEN_CMDS,
#else
O_TOWN_MAP,
#endif
O_FLOAT_MSG,
O_METARULE,
O_ANIM,
O_OBJ_CARRYING_PID_OBJ,
O_REG_ANIM_FUNC,
O_REG_ANIM_ANIMATE,
O_REG_ANIM_ANIMATE_REVERSE,
O_REG_ANIM_OBJ_MOVE_TO_OBJ,
O_REG_ANIM_OBJ_RUN_TO_OBJ,
O_REG_ANIM_OBJ_MOVE_TO_TILE,
O_REG_ANIM_OBJ_RUN_TO_TILE,
O_PLAY_GMOVIE,
O_ADD_MULT_OBJS_TO_INVEN,
O_RM_MULT_OBJS_FROM_INVEN,
O_GET_MONTH,
O_GET_DAY,
O_EXPLOSION,
O_DAYS_SINCE_VISITED,
O_GSAY_START,
O_GSAY_END,
O_GSAY_REPLY,
O_GSAY_OPTION,
O_GSAY_MESSAGE,
O_GIQ_OPTION,
O_POISON,
O_GET_POISON,
O_PARTY_ADD,
O_PARTY_REMOVE,
O_REG_ANIM_ANIMATE_FOREVER,
O_CRITTER_INJURE,
O_COMBAT_IS_INITIALIZED,
O_GDIALOG_MOD_BARTER,
O_DIFFICULTY_LEVEL,
O_RUNNING_BURNING_GUY,
O_INVEN_UNWIELD,
O_OBJ_IS_LOCKED,
O_OBJ_LOCK,
O_OBJ_UNLOCK,
O_OBJ_IS_OPEN,
O_OBJ_OPEN,
O_OBJ_CLOSE,
O_GAME_UI_DISABLE,
O_GAME_UI_ENABLE,
O_GAME_UI_IS_DISABLED,
O_GFADE_OUT,
O_GFADE_IN,
O_ITEM_CAPS_TOTAL,
O_ITEM_CAPS_ADJUST,
O_ANIM_ACTION_FRAME,
O_REG_ANIM_PLAY_SFX,
O_CRITTER_MOD_SKILL,
O_SFX_BUILD_CHAR_NAME,
O_SFX_BUILD_AMBIENT_NAME,
O_SFX_BUILD_INTERFACE_NAME,
O_SFX_BUILD_ITEM_NAME,
O_SFX_BUILD_WEAPON_NAME,
O_SFX_BUILD_SCENERY_NAME,
O_ATTACK_SETUP,
O_DESTROY_MULT_OBJS,
O_USE_OBJ_ON_OBJ,
O_ENDGAME_SLIDESHOW,
O_MOVE_OBJ_INVEN_TO_OBJ,
O_ENDGAME_MOVIE,
O_OBJ_ART_FID,
O_ART_ANIM,
O_PARTY_MEMBER_OBJ,
O_ROTATION_TO_TILE,
O_JAM_LOCK,
O_GDIALOG_SET_BARTER_MOD,
O_COMBAT_DIFFICULTY,
O_OBJ_ON_SCREEN,
O_CRITTER_IS_FLEEING,
O_CRITTER_SET_FLEE_STATE,
O_TERMINATE_COMBAT,
O_DEBUG_MSG,
O_CRITTER_STOP_ATTACKING,
O_TS_READ_BYTE,
O_TS_READ_SHORT,
O_TS_READ_INT,
O_TS_READ_STRING,
O_TS_SET_PC_BASE_STAT,
O_TS_SET_PC_EXTRA_STAT,
O_TS_GET_PC_BASE_STAT,
O_TS_GET_PC_EXTRA_STAT,
O_TS_SET_CRITTER_BASE_STAT,
O_TS_SET_CRITTER_EXTRA_STAT,
O_TS_GET_CRITTER_BASE_STAT,
O_TS_GET_CRITTER_EXTRA_STAT,
O_TS_TAP_KEY,
O_TS_GET_YEAR,
O_TS_GAME_LOADED,
O_TS_GRAPHICS_FUNCS_AVAILABLE,
O_TS_LOAD_SHADER,
O_TS_FREE_SHADER,
O_TS_ACTIVATE_SHADER,
O_TS_DEACTIVATE_SHADER,
O_TS_SET_GLOBAL_SCRIPT_REPEAT,
O_TS_INPUT_FUNCS_AVAILABLE,
O_TS_KEY_PRESSED,
O_TS_SET_SHADER_INT,
O_TS_SET_SHADER_FLOAT,
O_TS_SET_SHADER_VECTOR,
O_TS_IN_WORLD_MAP,
O_TS_FORCE_ENCOUNTER,
O_TS_SET_WORLD_MAP_POS,
O_TS_GET_WORLD_MAP_X_POS,
O_TS_GET_WORLD_MAP_Y_POS,
O_TS_SET_DM_MODEL,
O_TS_SET_DF_MODEL,
O_TS_SET_MOVIE_PATH,
O_TS_SET_PERK_IMAGE,
O_TS_SET_PERK_RANKS,
O_TS_SET_PERK_LEVEL,
O_TS_SET_PERK_STAT,
O_TS_SET_PERK_STAT_MAG,
O_TS_SET_PERK_SKILL1,
O_TS_SET_PERK_SKILl1_MAG,
O_TS_SET_PERK_TYPE,
O_TS_SET_PERK_SKILL2,
O_TS_SET_PERK_SKILL2_MAG,
O_TS_SET_PERK_STR,
O_TS_SET_PERK_PER,
O_TS_SET_PERK_END,
O_TS_SET_PERK_CHR,
O_TS_SET_PERK_INT,
O_TS_SET_PERK_AGL,
O_TS_SET_PERK_LCK,
O_TS_SET_PERK_NAME,
O_TS_SET_PERK_DESC,
O_TS_SET_PIPBOY_AVAILABLE,
O_TS_GET_KILL_COUNTER,
O_TS_MOD_KILL_COUNTER,
O_TS_GET_PERK_OWED,
O_TS_SET_PERK_OWED,
O_TS_GET_PERK_AVAILABLE,
O_TS_GET_CRITTER_AP,
O_TS_SET_CRITTER_AP,
O_TS_GET_ACTIVE_HAND,
O_TS_TOGGLE_ACTIVE_HAND,
O_TS_SET_WEAPON_KNOCKBACK,
O_TS_SET_TARGET_KNOCKBACK,
O_TS_SET_ATTACKER_KNOCKBACK,
O_TS_REMOVE_WEAPON_KNOCKBACK,
O_TS_REMOVE_TARGET_KNOCKBACK,
O_TS_REMOVE_ATTACKER_KNOCKBACK,
O_TS_SET_GLOBAL_SCRIPT_TYPE,
O_TS_AVAILABLE_GLOBAL_SCRIPT_TYPES,
O_TS_SET_SFALL_GLOBAL,
O_TS_GET_SFALL_GLOBAL_INT,
O_TS_GET_SFALL_GLOBAL_FLOAT,
O_TS_SET_PICKPOCKET_MAX,
O_TS_SET_HIT_CHANCE_MAX,
O_TS_SET_SKILL_MAX,
O_TS_EAX_AVAILABLE,
O_TS_SET_EAX_ENVIRONMENT,
O_TS_INC_NPC_LEVEL,
O_TS_GET_VIEWPORT_X,
O_TS_GET_VIEWPORT_Y,
O_TS_SET_VIEWPORT_X,
O_TS_SET_VIEWPORT_Y,
O_TS_SET_XP_MOD,
O_TS_SET_PERK_LEVEL_MOD,
O_TS_GET_INI_SETTING,
O_TS_GET_SHADER_VERSION,
O_TS_SET_SHADER_MODE,
O_TS_GET_GAME_MODE,
O_TS_FORCE_GRAPHICS_REFRESH,
O_TS_GET_SHADER_TEXTURE,
O_TS_SET_SHADER_TEXTURE,
O_TS_GET_UPTIME,
O_TS_SET_STAT_MAX,
O_TS_SET_STAT_MIN,
O_TS_SET_CAR_CURRENT_TOWN,
O_TS_SET_PC_STAT_MAX,
O_TS_SET_PC_STAT_MIN,
O_TS_SET_NPC_STAT_MAX,
O_TS_SET_NPC_STAT_MIN,
O_TS_SET_FAKE_PERK,
O_TS_SET_FAKE_TRAIT,
O_TS_SET_SELECTABLE_PERK,
O_TS_SET_PERKBOX_TITLE,
O_TS_HIDE_REAL_PERKS,
O_TS_SHOW_REAL_PERKS,
O_TS_HAS_FAKE_PERK,
O_TS_HAS_FAKE_TRAIT,
O_TS_PERK_ADD_MODE,
O_TS_CLEAR_SELECTABLE_PERKS,
O_TS_SET_CRITTER_HIT_CHANCE_MOD,
O_TS_SET_BASE_HIT_CHANCE_MOD,
O_TS_SET_CRITTER_SKILL_MOD,
O_TS_SET_BASE_SKILL_MOD,
O_TS_SET_CRITTER_PICKPOCKET_MOD,
O_TS_SET_BASE_PICKPOCKET_MOD,
O_TS_SET_PYROMANIAC_MOD,
O_TS_APPLY_HEAVEHO_FIX,
O_TS_SET_SWIFTLEARNER_MOD,
O_TS_SET_HP_LEVEL_MOD,
O_TS_WRITE_BYTE,
O_TS_WRITE_SHORT,
O_TS_WRITE_INT,
O_TS_CALL_OFFSET_V0,
O_TS_CALL_OFFSET_V1,
O_TS_CALL_OFFSET_V2,
O_TS_CALL_OFFSET_V3,
O_TS_CALL_OFFSET_V4,
O_TS_CALL_OFFSET_R0,
O_TS_CALL_OFFSET_R1,
O_TS_CALL_OFFSET_R2,
O_TS_CALL_OFFSET_R3,
O_TS_CALL_OFFSET_R4,
O_TS_SHOW_IFACE_TAG,
O_TS_HIDE_IFACE_TAG,
O_TS_IS_IFACE_TAG_ACTIVE,
O_TS_GET_BODYPART_HIT_MODIFIER,
O_TS_SET_BODYPART_HIT_MODIFIER,
O_TS_SET_CRITICAL_TABLE,
O_TS_GET_CRITICAL_TABLE,
O_TS_RESET_CRITICAL_TABLE,
O_TS_GET_SFALL_ARG,
O_TS_SET_SFALL_RETURN,
O_TS_SET_UNSPENT_AP_BONUS,
O_TS_GET_UNSPENT_AP_BONUS,
O_TS_SET_UNSPENT_AP_EBONUS,
O_TS_GET_UNSPENT_AP_EBONUS,
O_TS_INIT_HOOK,
O_TS_GET_INI_STRING,
O_TS_SQRT,
O_TS_ABS,
O_TS_SIN,
O_TS_COS,
O_TS_TAN,
O_TS_ATAN,
//O_TS_CREATE_BUTTON,
O_TS_SET_PALETTE,
//O_TS_BUTTON_PRESSED,
O_TS_REMOVE_SCRIPT,
O_TS_SET_SCRIPT,
O_TS_GET_SCRIPT,
O_TS_NB_CREATE_CHAR,
O_TS_FS_CREATE,
O_TS_FS_COPY,
O_TS_FS_FIND,
O_TS_FS_WRITE_BYTE,
O_TS_FS_WRITE_SHORT,
O_TS_FS_WRITE_INT,
O_TS_FS_WRITE_FLOAT,
O_TS_FS_WRITE_STRING,
O_TS_FS_DELETE,
O_TS_FS_SIZE,
O_TS_FS_POS,
O_TS_FS_SEEK,
O_TS_FS_RESIZE,
O_TS_GET_PROTO_DATA,
O_TS_SET_PROTO_DATA,
O_TS_SET_SELF,
O_TS_REGISTER_HOOK,
O_TS_FS_WRITE_BSTRING,
O_TS_FS_READ_BYTE,
O_TS_FS_READ_SHORT,
O_TS_FS_READ_INT,
O_TS_FS_READ_FLOAT,
O_TS_LIST_BEGIN,
O_TS_LIST_NEXT,
O_TS_LIST_END,
O_TS_SFALL_VER_MAJOR,
O_TS_SFALL_VER_MINOR,
O_TS_SFALL_VER_BUILD,
O_TS_HERO_SELECT_WIN,
O_TS_SET_HERO_RACE,
O_TS_SET_HERO_STYLE,
O_TS_SET_CRITTER_BURST_DISABLE,
O_TS_GET_WEAPON_AMMO_PID,
O_TS_SET_WEAPON_AMMO_PID,
O_TS_GET_WEAPON_AMMO_COUNT,
O_TS_SET_WEAPON_AMMO_COUNT,
O_TS_WRITE_STRING,
O_TS_GET_MOUSE_X,
O_TS_GET_MOUSE_Y,
O_TS_GET_MOUSE_BUTTONS,
O_TS_GET_WINDOW_UNDER_MOUSE,
O_TS_GET_SCREEN_WIDTH,
O_TS_GET_SCREEN_HEIGHT,
O_TS_STOP_GAME,
O_TS_RESUME_GAME,
O_TS_CREATE_MESSAGE_WINDOW,
O_TS_REMOVE_TRAIT,
O_TS_GET_LIGHT_LEVEL,
O_TS_REFRESH_PC_ART,
O_TS_GET_ATTACK_TYPE,
O_TS_FORCE_ENCOUNTER_WITH_FLAGS,
O_TS_SET_MAP_TIME_MULTI,
O_TS_PLAY_SFALL_SOUND,
O_TS_STOP_SFALL_SOUND,
O_TS_CREATE_ARRAY,
O_TS_SET_ARRAY,
O_TS_GET_ARRAY,
O_TS_FREE_ARRAY,
O_TS_LEN_ARRAY,
O_TS_RESIZE_ARRAY,
O_TS_TEMP_ARRAY,
O_TS_FIX_ARRAY,
O_TS_STRING_SPLIT,
O_TS_LIST_AS_ARRAY,
O_TS_ATOI,
O_TS_ATOF,
O_TS_SCAN_ARRAY,
O_TS_TILE_PID,
O_TS_MODIFIED_INI,
O_TS_GET_SFALL_ARGS,
O_TS_SET_SFALL_ARG,
O_TS_FORCE_AIMED_SHOTS,
O_TS_DISABLE_AIMED_SHOTS,
O_TS_MARK_MOVIE_PLAYED,
O_TS_GET_NPC_LEVEL,
O_TS_SET_CRITTER_SKILL_POINTS,
O_TS_GET_CRITTER_SKILL_POINTS,
O_TS_SET_AVAILABLE_SKILL_POINTS,
O_TS_GET_AVAILABLE_SKILL_POINTS,
O_TS_MOD_SKILL_POINTS_PER_LEVEL,
O_TS_SET_PERK_FREQ,
O_TS_GET_LAST_ATTACKER,
O_TS_GET_LAST_TARGET,
O_TS_BLOCK_COMBAT,
O_TS_TILE_UNDER_CURSOR,
O_TS_GET_BARTER_MOD,
O_TS_SET_INVEN_AP_COST,
O_TS_SUBSTR,
O_TS_STRLEN,
O_TS_SPRINTF,
O_TS_ORD,
O_TS_RESERVD2,
O_TS_TYPEOF,
O_TS_SAVE_ARRAY,
O_TS_LOAD_ARRAY,
O_TS_GET_ARRAY_KEY,
O_TS_STACK_ARRAY,
O_TS_RESERVD3,
O_TS_RESERVD4,
O_TS_REG_ANIM_DESTROY,
O_TS_REG_ANIM_ANIMATE_AND_HIDE,
O_TS_REG_ANIM_COMBAT_CHECK,
O_TS_REG_ANIM_LIGHT,
O_TS_REG_ANIM_CHANGE_FID,
O_TS_REG_ANIM_TAKE_OUT,
O_TS_REG_ANIM_TURN_TOWARDS,
O_TS_EXPLOSIONS_METARULE,
O_TS_REGISTER_HOOK_PROC,
O_TS_POW,
O_TS_LOG,
O_TS_EXP,
O_TS_CEIL,
O_TS_ROUND,
O_TS_RESERVD5,
O_TS_RESERVD6,
O_TS_RESERVD7,
O_TS_MESSAGE_STR_GAME,
O_TS_SNEAK_SUCCESS,
O_TS_TILE_LIGHT,
O_TS_MAKE_STRAIGHT_PATH,
O_TS_OBJ_BLOCKING_AT,
O_TS_TILE_GET_OBJECTS,
O_TS_GET_PARTY_MEMBERS,
O_TS_PATH_FIND,
O_TS_CREATE_SPATIAL,
O_TS_ART_EXISTS,
O_TS_OBJ_IS_CARRYING_OBJ,
O_TS_SFALL_METARULE0,
O_TS_SFALL_METARULE1,
O_TS_SFALL_METARULE2,
O_TS_SFALL_METARULE3,
O_TS_SFALL_METARULE4,
O_TS_SFALL_METARULE5,
O_TS_SFALL_METARULE6,
O_TS_REGISTER_HOOK_PROC2,
O_TS_REG_ANIM_CALLBACK,
O_TS_DIV, // used for unsigned integer division
O_TS_SFALL_METARULE7,
O_TS_SFALL_METARULE8,
O_END_OP,
};
#endif