/* Copyright 1998-2003 Interplay Entertainment Corp. All rights reserved. */ #ifndef DEFINE_H #define DEFINE_H // This file holds all of the things that should be preprocessed. // Script Procedure Types // #define no_proc (0) #define start_proc (1) #define spatial_proc (2) #define description_proc (3) #define pickup_proc (4) #define drop_proc (5) #define use_proc (6) #define use_obj_on_proc (7) #define use_skill_on_proc (8) #define use_ad_on_proc (9) #define use_disad_on_proc (10) #define talk_proc (11) #define critter_proc (12) #define combat_proc (13) #define damage_proc (14) #define map_enter_proc (15) #define map_exit_proc (16) #define create_proc (17) #define destroy_proc (18) #define barter_init_proc (19) #define barter_proc (20) #define look_at_proc (21) #define timed_event_proc (22) #define map_update_proc (23) // Map-Enter Proc subdefines // Warning: This one is only valid in map_enter proc right when run! ///#define map_first_run (fixed_param) #define METARULE_TEST_FIRSTRUN 14 #define map_first_run metarule(METARULE_TEST_FIRSTRUN, 0) #define METARULE_IS_LOADGAME 22 #define is_loading_game metarule(METARULE_IS_LOADGAME, 0) // Script Combat Procedure SubTypes // #define COMBAT_SUBTYPE_WEAPON_USED (1) #define COMBAT_SUBTYPE_HIT_SUCCEEDED (2) #define COMBAT_SUBTYPE_SEQUENCING (3) #define COMBAT_SUBTYPE_TURN (4) #define COMBAT_SUBTYPE_NONCOM_TURN (5) // ----------------------------------------------------------------------- // // pc critter defines // #define give_character_points(X) give_exp_points(X) // create_object defines // #define create_object(X,Y,Z) create_object_sid(X,Y,Z,-1) //#define destroy_object(X) destroy_mult_objs(X,1) //#define add_obj_to_inven(X,Y) add_mult_objs_to_inven(X,Y,1) //#define rm_obj_from_inven(X,Y) rm_mult_objs_from_inven(X,Y,1) // combat defines // #define attack(WHO) attack_complex(WHO,0,1,0,0,30000,0,0) // wield_obj defines // #define wield_obj(WHAT) wield_obj_critter(self_obj,WHAT) #define gdialog_barter gdialog_mod_barter(0) // Movie number defines // // Commented out movies are done in the C-engine. JLR //#define INTERPLAY_LOGO_MOVIE_PC 0 // "iplogo.mve", // Interplay logo. //#define INTRO_MOVIE 1 // "intro.mve", // Intro. //#define ELDER_MOVIE 2 // "elder.mve", #define VSUIT_MOVIE 3 // "vsuit.mve", #define AFAILED_MOVIE 4 // "afailed.mve", #define ADESTROY_MOVIE 5 // "adestroy.mve", #define CAR_MOVIE 6 // "car.mve", #define CARTUCCI_MOVIE 7 // "cartucci.mve", #define DETHCLAW_MOVIE 8 // "dethclaw.mve", #define TANKER_MOVIE 9 // "tanker.mve", #define ENCLAVE_MOVIE 10 // "enclave.mve", #define DERRICK_MOVIE 11 // "derrick.mve" // float_msg defines // #define FLOAT_MSG_WARNING (-2) #define FLOAT_MSG_SEQUENTIAL (-1) #define FLOAT_MSG_NORMAL (0) #define FLOAT_MSG_BLACK (1) #define FLOAT_MSG_RED (2) #define FLOAT_MSG_GREEN (3) #define FLOAT_MSG_BLUE (4) #define FLOAT_MSG_PURPLE (5) #define FLOAT_MSG_NEAR_WHITE (6) #define FLOAT_MSG_LIGHT_RED (7) #define FLOAT_MSG_YELLOW (8) #define FLOAT_MSG_WHITE (9) #define FLOAT_MSG_GREY (10) #define FLOAT_MSG_DARK_GREY (11) #define FLOAT_MSG_LIGHT_GREY (12) #define float_msg_clear(WHO) float_msg(WHO,0,0) // dialogue defines // #define start_dialogue(X,Y) start_gdialog(-1,X,Y,-1,-1) // head_anim enums #define good_fidget (1) #define neutral_fidget (4) #define bad_fidget (7) // Mood defines // #define GOOD_REACTION (49) #define NEUTRAL_REACTION (50) #define BAD_REACTION (51) // Head defines // #define HEAD_MARCUS (1) //marcus -- Party Member (found in Broken Hills) #define HEAD_MYRON (2) //Myron -- Party Member (found in New Reno) #define HEAD_ELDER (3) // Elder -- (found in Arroyo) #define HEAD_LYNETTE (4) // Lynette -- fount in Vault City #define HEAD_HAROLD (5) // HAROLD -- found in Gecko #define HEAD_TANDI (6) // Tandi -- Leader of the NCR #define HEAD_COM_OFFICER (7) // Com Officer in Gecko #define HEAD_SULIK (8) // Sulik -- Party Member (found in Klamath) #define HEAD_PRESIDENT (9) // President of the Enclave #define HEAD_HAKUNIN (10) // Hakunin -- Found in Arroyo #define HEAD_BOSS (11) #define HEAD_DYING_HAKUNIN (12) // Head defines // #define BACKGROUND1 (2) // rstymetl #define BACKGROUND_HUB (3) //hub.frm #define BACKGROUND_NECROPOLIS (4) //necro.frm #define BACKGROUND_BHOOD (5) //bhood.frm #define BACKGROUND_MILITARYBS (6) //military.frm #define BACKGROUND_JUNKTOWN (7) //junktown.frm #define BACKGROUND_CATHEDRAL (8) //cath.frm #define BACKGROUND_SHADY (9) //shady.frm #define BACKGROUND_VAULT (10) //vault.frm #define BACKGROUND_MASTER (11) //master.frm #define BACKGROUND_FOLLOWER (12) //follow.frm #define BACKGROUND_RAIDERS (13) //raider.frm // Start of Fallout 2: Backgrounds #define BACKGROUND_CAVE (14) //cave0001.frm #define BACKGROUND_ENCLAVE (15) //enclave.frm #define BACKGROUND_WASTELAND (16) //wastelnd.frm #define BACKGROUND_BOSS (17) // boss.frm #define BACKGROUND_PRESIDENT (18) // pres.frm #define BACKGROUND_TENT (19) // tent.frm #define BACKGROUND_ADOBE (20) // Adobe.frm // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- // #define IAN_MEMBER_PTR party_member_obj(PID_IAN) #define KATJA_MEMBER_PTR party_member_obj(PID_KATJA) #define TYCHO_MEMBER_PTR party_member_obj(PID_TYCHO) #define DOGMEAT_MEMBER_PTR party_member_obj(PID_DOGMEAT) #define TANDI_MEMBER_PTR party_member_obj(PID_TANDI) // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- // // Trait defines // #define TRAIT_PERK (0) #define TRAIT_OBJECT (1) #define TRAIT_TRAIT (2) // Perk Trait Types #define PERK_bonus_awareness (0) #define PERK_bonus_hth_attacks (1) #define PERK_bonus_hth_damage (2) #define PERK_bonus_move (3) #define PERK_bonus_ranged_damage (4) #define PERK_bonus_rate_of_fire (5) #define PERK_earlier_sequence (6) #define PERK_faster_healing (7) #define PERK_more_criticals (8) #define PERK_night_vision (9) #define PERK_presence (10) #define PERK_rad_resistance (11) #define PERK_toughness (12) #define PERK_strong_back (13) #define PERK_sharpshooter (14) #define PERK_silent_running (15) #define PERK_survivalist (16) #define PERK_master_trader (17) #define PERK_educated (18) #define PERK_healer (19) #define PERK_fortune_finder (20) #define PERK_better_criticals (21) #define PERK_empathy (22) #define PERK_slayer (23) #define PERK_sniper (24) #define PERK_silent_death (25) #define PERK_action_boy (26) #define PERK_mental_block (27) //-- Disabled FO2 #define PERK_lifegiver (28) #define PERK_dodger (29) #define PERK_snakeater (30) #define PERK_mr_fixit (31) #define PERK_medic (32) #define PERK_master_thief (33) #define PERK_speaker (34) #define PERK_heave_ho (35) #define PERK_friendly_foe (36) //-- Disabled FO2 #define PERK_pickpocket (37) #define PERK_ghost (38) #define PERK_cult_of_personality (39) #define PERK_scrounger (40) //-- Disabled FO2 #define PERK_explorer (41) #define PERK_flower_child (42) //-- Disabled FO2 #define PERK_pathfinder (43) #define PERK_animal_friend (44) //-- Disabled FO2 #define PERK_scout (45) #define PERK_mysterious_stranger (46) #define PERK_ranger (47) #define PERK_quick_pockets (48) #define PERK_smooth_talker (49) #define PERK_swift_learner (50) #define PERK_tag (51) #define PERK_mutate (52) #define PERK_add_nuka (53) // Do NOT USE! Engine ONLY! #define PERK_add_buffout (54) // Do NOT USE! Engine ONLY! #define PERK_add_mentats (55) // Do NOT USE! Engine ONLY! #define PERK_add_psycho (56) // Do NOT USE! Engine ONLY! #define PERK_add_radaway (57) // Do NOT USE! Engine ONLY! #define PERK_weapon_long_range (58) // Do NOT USE! Engine ONLY! #define PERK_weapon_accurate (59) // Do NOT USE! Engine ONLY! #define PERK_weapon_penetrate (60) // Do NOT USE! Engine ONLY! #define PERK_weapon_knockback (61) // Do NOT USE! Engine ONLY! #define PERK_armor_powered (62) // Do NOT USE! Engine ONLY! #define PERK_armor_combat (63) // Do NOT USE! Engine ONLY! // Note: Fallout 2: New Perks #define PERK_weapon_scope_range (64) // Do NOT USE! Engine ONLY! #define PERK_weapon_fast_reload (65) // Do NOT USE! Engine ONLY! #define PERK_weapon_night_sight (66) // Do NOT USE! Engine ONLY! #define PERK_weapon_flameboy (67) // Do NOT USE! Engine ONLY! #define PERK_armor_advanced_1 (68) // Do NOT USE! Engine ONLY! #define PERK_armor_advanced_2 (69) // Do NOT USE! Engine ONLY! #define PERK_add_jet (70) // Do NOT USE! Engine ONLY! #define PERK_add_tragic (71) // Do NOT USE! Engine ONLY! #define PERK_armor_charisma (72) // Do NOT USE! Engine ONLY! #define PERK_gecko_skinning_perk (73) #define PERK_dermal_armor_perk (74) #define PERK_dermal_enhancement_perk (75) #define PERK_phoenix_armor_perk (76) #define PERK_phoenix_enhancement_perk (77) #define PERK_vault_city_inoculations_perk (78) #define PERK_adrenaline_rush_perk (79) #define PERK_cautious_nature_perk (80) #define PERK_comprehension_perk (81) #define PERK_demolition_expert_perk (82) #define PERK_gambler_perk (83) #define PERK_gain_strength_perk (84) #define PERK_gain_perception_perk (85) #define PERK_gain_endurance_perk (86) #define PERK_gain_charisma_perk (87) #define PERK_gain_intelligence_perk (88) #define PERK_gain_agility_perk (89) #define PERK_gain_luck_perk (90) #define PERK_harmless_perk (91) #define PERK_here_and_now_perk (92) #define PERK_hth_evade_perk (93) #define PERK_kama_sutra_perk (94) #define PERK_karma_beacon_perk (95) #define PERK_light_step_perk (96) #define PERK_living_anatomy_perk (97) #define PERK_magnetic_personality_perk (98) #define PERK_negotiator_perk (99) #define PERK_pack_rat_perk (100) #define PERK_pyromaniac_perk (101) #define PERK_quick_recovery_perk (102) #define PERK_salesman_perk (103) #define PERK_stonewall_perk (104) #define PERK_thief_perk (105) #define PERK_weapon_handling_perk (106) #define PERK_vault_city_training_perk (107) #define PERK_alcohol_hp_bonus1_perk (108) #define PERK_alcohol_hp_bonus2_perk (109) #define PERK_alcohol_hp_neg1_perk (110) #define PERK_alcohol_hp_neg2_perk (111) #define PERK_autodoc_hp_bonus1_perk (112) #define PERK_autodoc_hp_bonus2_perk (113) #define PERK_autodoc_hp_neg1_perk (114) #define PERK_autodoc_hp_neg2_perk (115) #define PERK_expert_excrement_expediter_perk (116) #define PERK_weapon_knockout_perk (117) #define PERK_jinxed_perk (118) // Object Trait Subtypes #define OBJECT_AI_PACKET (5) #define OBJECT_TEAM_NUM (6) #define OBJECT_CUR_ROT (10) #define OBJECT_VISIBILITY (666) #define OBJECT_CUR_WEIGHT (669) #define obj_is_visible_flag(WHO) has_trait(TRAIT_OBJECT,WHO,OBJECT_VISIBILITY) // Trait Types #define TRAIT_fast_metabolism (0) #define TRAIT_bruiser (1) #define TRAIT_small_frame (2) #define TRAIT_one_hander (3) #define TRAIT_finesse (4) #define TRAIT_kamikaze (5) #define TRAIT_heavy_handed (6) #define TRAIT_fast_shot (7) #define TRAIT_bloody_mess (8) #define TRAIT_jinxed (9) #define TRAIT_good_natured (10) #define TRAIT_drug_addict (11) #define TRAIT_drug_resistant (12) #define TRAIT_sex_appeal (13) #define TRAIT_skilled (14) #define TRAIT_gifted (15) // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- // // SPECIAL System stats: strength, perception, endurance, charisma, intelligence, agility, luck #define STAT_st (0) #define STAT_pe (1) #define STAT_en (2) #define STAT_ch (3) #define STAT_iq (4) #define STAT_ag (5) #define STAT_lu (6) #define STAT_max_hp (7) // luck MUST be the last basic stat // derived stats #define STAT_max_hit_points (7) #define STAT_max_move_points (8) #define STAT_ac (9) #define STAT_unused (10) // used in sfall for critter inventory size (see CritterInvSizeLimitMode) #define STAT_melee_dmg (11) #define STAT_carry_amt (12) #define STAT_sequence (13) #define STAT_heal_rate (14) #define STAT_crit_chance (15) #define STAT_better_crit (16) #define STAT_dmg_thresh (17) #define STAT_dmg_thresh_laser (18) #define STAT_dmg_thresh_fire (19) #define STAT_dmg_thresh_plasma (20) #define STAT_dmg_thresh_electrical (21) #define STAT_dmg_thresh_emp (22) #define STAT_dmg_thresh_explosion (23) #define STAT_dmg_resist (24) #define STAT_dmg_resist_laser (25) #define STAT_dmg_resist_fire (26) #define STAT_dmg_resist_plasma (27) #define STAT_dmg_resist_electrical (28) #define STAT_dmg_resist_emp (29) #define STAT_dmg_resist_explosion (30) #define STAT_rad_resist (31) #define STAT_poison_resist (32) // poison_resist MUST be the last derived stat // nonderived stats #define STAT_age (33) #define STAT_gender (34) // gender MUST be the last nonderived stat #define STAT_current_hp (35) #define STAT_current_poison (36) #define STAT_current_rad (37) #define STAT_real_max_stat (38) // extra stat-like values that are treated specially #define STAT_max_stat STAT_current_hp #define PCSTAT_unspent_skill_points (0) #define PCSTAT_level (1) #define PCSTAT_experience (2) #define PCSTAT_reputation (3) #define PCSTAT_karma (4) #define PCSTAT_max_pc_stat (5) // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- // // Skill Equates // // the following are skills for the SPECIAL system #define SKILL_SMALL_GUNS (0) #define SKILL_BIG_GUNS (1) #define SKILL_ENERGY_WEAPONS (2) #define SKILL_UNARMED_COMBAT (3) #define SKILL_MELEE (4) #define SKILL_THROWING (5) #define SKILL_FIRST_AID (6) #define SKILL_DOCTOR (7) #define SKILL_SNEAK (8) #define SKILL_LOCKPICK (9) #define SKILL_STEAL (10) #define SKILL_TRAPS (11) #define SKILL_SCIENCE (12) #define SKILL_REPAIR (13) #define SKILL_CONVERSANT (14) #define SKILL_BARTER (15) #define SKILL_GAMBLING (16) #define SKILL_OUTDOORSMAN (17) #define CRITTER_SKILL_LEVEL(X,Y) has_skill(X,Y) #define critter_skill_level(X,Y) has_skill(X,Y) // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- // // Reaction Levels // #define rl_disastrous (0) #define rl_very_bad (1) #define rl_bad (2) #define rl_poor (3) #define rl_neutral (4) #define rl_good (5) #define rl_very_good (6) #define rl_excellent (7) //#define LOAD_MAP_INDEX (32) #define GENDER_MALE (0) #define GENDER_FEMALE (1) // critter_state States // #define CRITTER_IS_NORMAL (0) #define CRITTER_IS_DEAD (1) #define CRITTER_IS_PRONE (2) #define is_critter_dead(who) (critter_state(who) bwand CRITTER_IS_DEAD) #define is_critter_prone(who) (critter_state(who) bwand CRITTER_IS_PRONE) // inventory Equates // #define INVEN_TYPE_WORN (0) #define INVEN_TYPE_RIGHT_HAND (1) #define INVEN_TYPE_LEFT_HAND (2) #define INVEN_TYPE_INV_COUNT (-2) #define inven_count(WHO) critter_inven_obj(WHO, INVEN_TYPE_INV_COUNT) // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- // /* proto_data data_member Equates */ /* Item subtypes */ #define item_type_armor (0) #define item_type_container (1) #define item_type_drug (2) #define item_type_weapon (3) #define item_type_ammo (4) #define item_type_misc_item (5) #define item_type_key_item (6) /* Item data_members */ #define it_pid (0) #define it_name (1) #define it_description (2) #define it_fid (3) #define it_light_distance (4) #define it_light_intensity (5) #define it_flags (6) #define it_flags_ext (7) #define it_sid (8) #define it_type (9) #define it_data (10) #define it_material (11) #define it_size (12) #define it_weight (13) #define it_cost (14) #define it_inv_fid (15) #define it_weapon_range (555) /* Critter data_members */ #define cr_pid (0) #define cr_name (1) #define cr_description (2) #define cr_fid (3) #define cr_light_distance (4) #define cr_light_intensity (5) #define cr_flags (6) #define cr_flags_ext (7) #define cr_sid (8) #define cr_data (9) #define cr_head_fid (10) #define cr_body_type (11) // cr_body_type values: #define CR_BODY_BIPED 0 #define CR_BODY_QUADRUPED 1 #define CR_BODY_ROBOTIC 2 /* Scenery data_members */ #define sc_pid (0) #define sc_name (1) #define sc_description (2) #define sc_fid (3) #define sc_light_distance (4) #define sc_light_intensity (5) #define sc_flags (6) #define sc_flags_ext (7) #define sc_sid (8) #define sc_type (9) #define sc_data (10) #define sc_material (11) /* Wall data_members */ #define wa_pid (0) #define wa_name (1) #define wa_description (2) #define wa_fid (3) #define wa_light_distance (4) #define wa_light_intensity (5) #define wa_flags (6) #define wa_flags_ext (7) #define wa_sid (8) #define wa_material (9) /* Tile data_members */ /* Misc data_members */ #define mi_pid (0) #define mi_name (1) #define mi_description (2) #define mi_fid (3) #define mi_light_distance (4) #define mi_light_intensity (5) #define mi_flags (6) #define mi_flags_ext (7) // ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- // /* Combat Flags */ // valid flags for damage_results #define DAM_KNOCKED_OUT 0x1 #define DAM_KNOCKED_DOWN 0x2 #define DAM_CRIP_LEG_LEFT 0x4 #define DAM_CRIP_LEG_RIGHT 0x8 #define DAM_CRIP_ARM_LEFT 0x10 #define DAM_CRIP_ARM_RIGHT 0x20 #define DAM_BLIND 0x40 #define DAM_DEAD 0x80 #define DAM_HIT 0x100 // hit or critical hit #define DAM_CRITICAL 0x200 // could be a critical hit or critical miss #define DAM_ON_FIRE 0x400 #define DAM_BYPASS 0x800 #define DAM_EXPLODE 0x1000 #define DAM_DESTROY 0x2000 #define DAM_DROP 0x4000 #define DAM_LOSE_TURN 0x8000 #define DAM_HIT_SELF 0x10000 #define DAM_LOSE_AMMO 0x20000 #define DAM_DUD 0x40000 #define DAM_HURT_SELF 0x80000 #define DAM_RANDOM_HIT 0x100000 #define DAM_CRIP_RANDOM 0x200000 #define DAM_BACKWASH 0x400000 // Fallout 2: #define DAM_PERFORM_REVERSE 0x800000 #define critter_uninjure(WHO, FLAGS) critter_injure(WHO, (FLAGS bwor DAM_PERFORM_REVERSE)) #define DMG_normal_dam 0 #define DMG_laser 1 #define DMG_fire 2 #define DMG_plasma 3 #define DMG_electrical 4 #define DMG_emp 5 #define DMG_explosion 6 // These are BWOR'd into the above damage type #define DMG_BYPASS_ARMOR (256) #define DMG_NOANIMATE (512) //#define critter_damage(WHO,AMT) critter_dmg(WHO,AMT,(DMG_normal_dam BWOR DMG_NOANIMATE)) #define critter_damage(WHO,AMT) critter_dmg(WHO,AMT,DMG_normal_dam) /* Kill Critter Equates */ #define KILL_DONT_LEAVE_BODY (0) #define KILL_LEAVE_BODY (1) #define KILL_LEAVE_NV_BODY (2) /* Script MetaRules */ #define METARULE_SIGNAL_END_GAME 13 #define METARULE_TEST_FIRSTRUN 14 #define signal_end_game metarule(METARULE_SIGNAL_END_GAME, 0) #define METARULE_ELEVATOR 15 #define elevator(X) metarule(METARULE_ELEVATOR, X) #define ELEV_BOS1 (0) // Brotherhood of Steel main elevator #define ELEV_BOS2 (1) // Brotherhood of Steel surface elevator #define ELEV_MASTR1 (2) // Master's upper-level elevator #define ELEV_MASTR2 (3) // Master's lower-level elevator #define ELEV_MILB1 (4) // Military Base upper-level elevator #define ELEV_MILB2 (5) // Military Base lower-level elevator #define ELEV_GLOW1 (6) // Glow Elevator upper #define ELEV_GLOW2 (7) // Glow elevator lower #define ELEV_VAULT (8) // Vault13 elevator #define ELEV_NECVLT (9) // Necropolis elevator #define ELEV_SIERRA1 (10) // Sierra Elev 1 (1-2-3) #define ELEV_SIERRA2 (11) // Sierra Elev 2 (3-4) #define ELEV_SIERRAS (12) // Sierra Service Elev (1-2-3-4) #define METARULE_PARTY_COUNT 16 #define party_member_count(X) metarule(METARULE_PARTY_COUNT, X) #define DONT_LIST_HIDDEN_MEMBERS (0) #define LIST_HIDDEN_MEMBERS (1) #define METARULE_AREA_KNOWN 17 #define town_known(X) metarule(METARULE_AREA_KNOWN, X) #define METARULE_WHO_ON_DRUGS 18 #define drug_influence(WHO) metarule(METARULE_WHO_ON_DRUGS, WHO) #define METARULE_MAP_KNOWN 19 #define map_is_known(X) metarule(METARULE_MAP_KNOWN, X) //#define DEFINE_METARULE_IS_LOADGAME 22 #define METARULE_CAR_CURRENT_TOWN 30 #define METARULE_GIVE_CAR_TO_PARTY 31 #define METARULE_GIVE_CAR_GAS 32 #define car_current_town metarule(METARULE_CAR_CURRENT_TOWN, 0) #define car_give_to_party metarule(METARULE_GIVE_CAR_TO_PARTY, 0) #define car_give_gas(AMOUNT) metarule(METARULE_GIVE_CAR_GAS, AMOUNT) #define METARULE_SKILL_CHECK_TAG 40 #define is_skill_tagged(SKILL) metarule(METARULE_SKILL_CHECK_TAG, SKILL) #define METARULE_DROP_ALL_INVEN 42 #define obj_drop_everything(WHO) metarule(METARULE_DROP_ALL_INVEN, WHO) #define METARULE_INVEN_UNWIELD_WHO 43 #define inven_unwield(WHO) metarule(METARULE_INVEN_UNWIELD_WHO, WHO) #define METARULE_GET_WORLDMAP_XPOS 44 #define worldmap_xpos metarule(METARULE_GET_WORLDMAP_XPOS, 0) #define METARULE_GET_WORLDMAP_YPOS 45 #define worldmap_ypos metarule(METARULE_GET_WORLDMAP_YPOS, 0) #define METARULE_CURRENT_TOWN 46 #define cur_town metarule(METARULE_CURRENT_TOWN, 0) #define METARULE_LANGUAGE_FILTER 47 #define language_filter_is_on metarule(METARULE_LANGUAGE_FILTER, 0) #define METARULE_VIOLENCE_FILTER 48 #define violence_filter_setting metarule(METARULE_VIOLENCE_FILTER, 0) #define VLNCLVL_NONE 0 // Violence Level settings. #define VLNCLVL_MIN 1 #define VLNCLVL_NORMAL 2 #define VLNCLVL_MAX 3 #define METARULE_W_DAMAGE_TYPE 49 #define weapon_dmg_type(WEAP) metarule(METARULE_W_DAMAGE_TYPE, WEAP) #define METARULE_CRITTER_BARTERS 50 #define critter_can_barter(WHO) metarule(METARULE_CRITTER_BARTERS, WHO) #define METARULE_CRITTER_KILL_TYPE 51 #define critter_kill_type(WHO) metarule(METARULE_CRITTER_KILL_TYPE, WHO) #define KILL_TYPE_men_kills 0 #define KILL_TYPE_women_kills 1 #define KILL_TYPE_children_kills 2 #define KILL_TYPE_super_mutant_kills 3 #define KILL_TYPE_ghoul_kills 4 #define KILL_TYPE_brahmin_kills 5 #define KILL_TYPE_radscorpion_kills 6 #define KILL_TYPE_rat_kills 7 #define KILL_TYPE_floater_kills 8 #define KILL_TYPE_centaur_kills 9 #define KILL_TYPE_robot_kills 10 #define KILL_TYPE_dog_kills 11 #define KILL_TYPE_manti_kills 12 #define KILL_TYPE_deathclaw_kills 13 #define KILL_TYPE_plant_kills 14 #define KILL_TYPE_gecko_kills 15 #define KILL_TYPE_alien_kills 16 #define KILL_TYPE_giant_ant_kills 17 #define DEFINE_METARULE_SET_CAR_CARRY_AMOUNT 52 #define set_car_carry_amount(VALUE) metarule(DEFINE_METARULE_SET_CAR_CARRY_AMOUNT, VALUE) #define DEFINE_METARULE_GET_CAR_CARRY_AMOUNT 53 #define car_carry_amount metarule(DEFINE_METARULE_GET_CAR_CARRY_AMOUNT, 0) // Script MetaRule3's #define METARULE3_CLR_FIXED_TIMED_EVENTS 100 #define rm_fixed_timer_event(WHO,FIXED_VAL) metarule3(METARULE3_CLR_FIXED_TIMED_EVENTS,WHO,FIXED_VAL,0) #define METARULE3_MARK_SUBTILE 101 #define mark_world_subtile_visited(XPOS,YPOS,RADIUS) metarule3(METARULE3_MARK_SUBTILE,XPOS,YPOS,RADIUS) ///#define METARULE3_SET_WM_MUSIC 102 ///#define set_worldmap_music(MAPIDX,MUSICNAME) metarule3(METARULE3_SET_WM_MUSIC,MAPIDX,MUSICNAME,0) #define METARULE3_GET_KILL_COUNT 103 #define player_kill_count(TYPE) metarule3(METARULE3_GET_KILL_COUNT,TYPE,0,0) // Off/On states for mark_map_entrance_state #define OFFSTATE 0 #define ONSTATE 1 #define METARULE3_MARK_MAP_ENTRANCE 104 #define mark_map_entrance_state(MAPIDX,STATE) metarule3(METARULE3_MARK_MAP_ENTRANCE,MAPIDX,STATE,-1) #define mark_map_entrance_elev_state(MAPIDX,ELEV,STATE) metarule3(METARULE3_MARK_MAP_ENTRANCE,MAPIDX,STATE,ELEV) // wmSubTileVisitInfo Types: #define UNKNOWNTILETYPE 0 #define KNOWNTILETYPE 1 #define VISITEDTILETYPE 2 #define METARULE3_WM_SUBTILE_STATE 105 #define wm_get_subtile_state(XPOS,YPOS) metarule3(METARULE3_WM_SUBTILE_STATE,XPOS,YPOS,0) // Begin tile_get_next_critter(tile, elevation, lastCritter) //Note these defines are really messey. #define METARULE3_TILE_GET_NEXT_CRITTER (106) #define tile_get_next_critter(tile, elevation, lastCritter) metarule3(METARULE3_TILE_GET_NEXT_CRITTER, tile, elevation, lastCritter) // End #define METARULE3_ART_SET_BASE_FID_NUM (107) #define art_change_fid_num(WHO, NUM) metarule3(METARULE3_ART_SET_BASE_FID_NUM,WHO,NUM,0) #define METARULE3_TILE_SET_CENTER (108) #define tile_set_center(tileNum) metarule3(METARULE3_TILE_SET_CENTER,tileNum,0,0) #define METARULE3_CHEM_USE_LEVEL (109) #define chem_use_level(WHO) metarule3(METARULE3_CHEM_USE_LEVEL,WHO,0,0) #define METARULE3_CAR_OUT_OF_FUEL (110) #define car_out_of_fuel metarule3(METARULE3_CAR_OUT_OF_FUEL,0,0,0) #define METARULE3_MAP_GET_LOAD_AREA (111) #define map_get_load_area metarule3(METARULE3_MAP_GET_LOAD_AREA,0,0,0) // Used with mark_area_known #define MARK_TYPE_TOWN (0) #define MARK_TYPE_MAP (1) // wmAreaVisitStateInfo; #define MARK_STATE_UNKNOWN (0) #define MARK_STATE_KNOWN (1) #define MARK_STATE_VISITED (2) #define MARK_STATE_INVISIBLE (-66) // Inven Cmd defines // #define INVEN_CMD_INDEX_PTR (13) #define inven_ptr(WHO,WHERE) inven_cmds(WHO,INVEN_CMD_INDEX_PTR,WHERE) /* Extra */ /* GSound Values */ // gsound_character_types #define snd_human (0) #define snd_monster (1) // gsound_character_extra #define snd_unused (0) #define snd_knock_down (1) #define snd_pass_out (2) #define snd_die (3) #define snd_contact (4) // gsound_sfx_action #define snd_active (0) #define snd_passive (1) // gsound_sfx_weapon_action_type #define snd_weapon_ready (0) #define snd_weapon_attack (1) #define snd_weapon_out (2) #define snd_weapon_ammo_flying (3) #define snd_weapon_hitting (4) // gsound_sfx_scenery_action #define snd_open (0) #define snd_close (1) #define snd_locked (2) #define snd_unlocked (3) #define snd_used (4) // hit_mode #define hit_left_weapon_primary (0) #define hit_left_weapon_secondary (1) #define hit_right_weapon_primary (2) #define hit_right_weapon_secondary (3) #define hit_punch (4) #define hit_kick (5) #define hit_left_weapon_reload (6) #define hit_right_weapon_reload (7) #define fade_out gfade_out(1) #define fade_in gfade_in(1) /* Time Information (in Ticks) */ #define ONE_GAME_SECOND (10) #define ONE_GAME_MINUTE (60 * ONE_GAME_SECOND) #define ONE_GAME_HOUR (60 * ONE_GAME_MINUTE) #define ONE_GAME_DAY (24 * ONE_GAME_HOUR) #define ONE_GAME_WEEK (7 * ONE_GAME_DAY) #define ONE_GAME_MONTH (30 * ONE_GAME_DAY) /* bits */ #define bit_1 (1) #define bit_2 (2) #define bit_3 (4) #define bit_4 (8) #define bit_5 (0x10) #define bit_6 (0x20) #define bit_7 (0x40) #define bit_8 (0x80) #define bit_9 (0x100) #define bit_10 (0x200) #define bit_11 (0x400) #define bit_12 (0x800) #define bit_13 (0x1000) #define bit_14 (0x2000) #define bit_15 (0x4000) #define bit_16 (0x8000) #define bit_17 (0x10000) #define bit_18 (0x20000) #define bit_19 (0x40000) #define bit_20 (0x80000) #define bit_21 (0x100000) #define bit_22 (0x200000) #define bit_23 (0x400000) #define bit_24 (0x800000) #define bit_25 (0x1000000) #define bit_26 (0x2000000) #define bit_27 (0x4000000) #define bit_28 (0x8000000) #define bit_29 (0x10000000) #define bit_30 (0x20000000) #define bit_31 (0x40000000) #define bit_32 (0x80000000) #define bit_ALL (0xFFFFFFFF) //Misc commands #define obj_get_rot(obj) (has_trait(TRAIT_OBJECT, obj, OBJECT_CUR_ROT)) #define obj_in_party(x) (party_member_obj(obj_pid(x)) != 0) #define dude_tile (tile_num(dude_obj)) #define dude_elevation (elevation(dude_obj)) #define dude_skill(x) (has_skill(dude_obj, x)) // some commands #define mstr(x) message_str(NAME,x) #define display_mstr(x) display_msg(mstr(x)) #define g_mstr(x) message_str(SCRIPT_GENERIC,x) #endif // DEFINE_H