diff --git a/artifacts/scripting/headers/command_lite.h b/artifacts/scripting/headers/command_lite.h index 713d5f46..015df3b7 100644 --- a/artifacts/scripting/headers/command_lite.h +++ b/artifacts/scripting/headers/command_lite.h @@ -129,6 +129,14 @@ #define self_is_armed critter_is_armed(self_obj) #define self_wearing_armor critter_wearing_armor(self_obj) +// perks and traits +#define get_perk(cr,perk) has_trait(TRAIT_PERK,cr,perk) +#define dude_perk(perk) get_perk(dude_obj,perk) +#define self_perk(perk) get_perk(self_obj,perk) +#define get_trait(cr,trait) has_trait(TRAIT_TRAIT,cr,trait) +#define dude_trait(trait) get_trait(dude_obj,trait) +#define self_trait(trait) get_trait(self_obj,trait) + #define self_carrying_laser_pistol ((obj_pid(critter_inven_obj(self_obj,INVEN_TYPE_LEFT_HAND)) == PID_LASER_PISTOL) orElse \ (obj_pid(critter_inven_obj(self_obj,INVEN_TYPE_RIGHT_HAND)) == PID_LASER_PISTOL)) diff --git a/artifacts/scripting/headers/define_extra.h b/artifacts/scripting/headers/define_extra.h index 0e916e32..b2fabb4c 100644 --- a/artifacts/scripting/headers/define_extra.h +++ b/artifacts/scripting/headers/define_extra.h @@ -49,24 +49,38 @@ #define WEAPON_2HAND 0x00000200 // 2Hnd (weapon is two-handed) #define WEAPON_ENERGY 0x00000400 // Energy Weapon (forces weapon to use Energy Weapons skill) [sfall 4.2/3.8.20] -#define ATKMODE_PRI_NONE 0 -#define ATKMODE_PRI_PUNCH 1 // 0001 -#define ATKMODE_PRI_KICK 2 // 0010 -#define ATKMODE_PRI_SWING 3 // 0011 -#define ATKMODE_PRI_THRUST 4 // 0100 -#define ATKMODE_PRI_THROW 5 // 0101 -#define ATKMODE_PRI_SINGLE 6 // 0110 -#define ATKMODE_PRI_BURST 7 // 0111 -#define ATKMODE_PRI_FLAME 8 // 1000 -#define ATKMODE_SEC_NONE 0 -#define ATKMODE_SEC_PUNCH 16 // 0x00000010 -#define ATKMODE_SEC_KICK 32 // 0x00000020 -#define ATKMODE_SEC_SWING 48 // 0x00000030 -#define ATKMODE_SEC_THRUST 64 // 0x00000040 -#define ATKMODE_SEC_THROW 80 // 0x00000050 -#define ATKMODE_SEC_SINGLE 96 // 0x00000060 -#define ATKMODE_SEC_BURST 112 // 0x00000070 -#define ATKMODE_SEC_FLAME 128 // 0x00000080 +// The attack types returned by get_attack_type or as fifth argument of HOOK_ITEMDAMAGE +#define ATKTYPE_LWEP1 (0) +#define ATKTYPE_LWEP2 (1) +#define ATKTYPE_RWEP1 (2) +#define ATKTYPE_RWEP2 (3) +#define ATKTYPE_PUNCH (4) +#define ATKTYPE_KICK (5) +#define ATKTYPE_LWEP_RELOAD (6) +#define ATKTYPE_RWEP_RELOAD (7) +#define ATKTYPE_STRONGPUNCH (8) +#define ATKTYPE_HAMMERPUNCH (9) +#define ATKTYPE_HAYMAKER (10) +#define ATKTYPE_JAB (11) +#define ATKTYPE_PALMSTRIKE (12) +#define ATKTYPE_PIERCINGSTRIKE (13) +#define ATKTYPE_STRONGKICK (14) +#define ATKTYPE_SNAPKICK (15) +#define ATKTYPE_POWERKICK (16) +#define ATKTYPE_HIPKICK (17) +#define ATKTYPE_HOOKKICK (18) +#define ATKTYPE_PIERCINGKICK (19) + +#define ATTACK_MODE_NONE (0) +#define ATTACK_MODE_PUNCH (1) +#define ATTACK_MODE_KICK (2) +#define ATTACK_MODE_SWING (3) +#define ATTACK_MODE_THRUST (4) +#define ATTACK_MODE_THROW (5) +#define ATTACK_MODE_SINGLE (6) +#define ATTACK_MODE_BURST (7) +#define ATTACK_MODE_FLAME (8) + /* Object flags for get/set_flags */ #define FLAG_HIDDEN (0x1) diff --git a/artifacts/scripting/headers/sfall.h b/artifacts/scripting/headers/sfall.h index 5c556be6..dfeb7aeb 100644 --- a/artifacts/scripting/headers/sfall.h +++ b/artifacts/scripting/headers/sfall.h @@ -104,28 +104,6 @@ #define ENCOUNTER_FLAG_ICON_SP (0x8) // use special encounter icon #define ENCOUNTER_FLAG_FADEOUT (0x10) // fade out the screen on encounter (Note: you yourself should restore the fade screen when entering the encounter) -// The attack types returned by get_attack_type -#define ATKTYPE_LWEP1 (0) -#define ATKTYPE_LWEP2 (1) -#define ATKTYPE_RWEP1 (2) -#define ATKTYPE_RWEP2 (3) -#define ATKTYPE_PUNCH (4) -#define ATKTYPE_KICK (5) -#define ATKTYPE_LWEP_RELOAD (6) -#define ATKTYPE_RWEP_RELOAD (7) -#define ATKTYPE_STRONGPUNCH (8) -#define ATKTYPE_HAMMERPUNCH (9) -#define ATKTYPE_HAYMAKER (10) -#define ATKTYPE_JAB (11) -#define ATKTYPE_PALMSTRIKE (12) -#define ATKTYPE_PIERCINGSTRIKE (13) -#define ATKTYPE_STRONGKICK (14) -#define ATKTYPE_SNAPKICK (15) -#define ATKTYPE_POWERKICK (16) -#define ATKTYPE_HIPKICK (17) -#define ATKTYPE_HOOKKICK (18) -#define ATKTYPE_PIERCINGKICK (19) - // Return values for "typeof" #define VALTYPE_NONE (0) // not used yet #define VALTYPE_INT (1) @@ -293,6 +271,9 @@ #define set_weapon_usable(item) set_object_data(item, OBJ_DATA_MISC_FLAGS, get_object_data(item, OBJ_DATA_MISC_FLAGS) bwand 0xFFFFFFEF) #define weapon_is_unusable(item) (get_object_data(item, OBJ_DATA_MISC_FLAGS) bwand 0x00000010) +#define weapon_attack_mode1(pid) (get_proto_data(pid, PROTO_FLAG_EXT) bwand 0x0000000F) +#define weapon_attack_mode2(pid) ((get_proto_data(pid, PROTO_FLAG_EXT) bwand 0x000000F0) / 0x10) + /* SFALL_FUNCX MACROS */ @@ -401,7 +382,10 @@ #define spatial_radius(obj) sfall_func1("spatial_radius", obj) #define string_compare(str1, str2) sfall_func2("string_compare", str1, str2) #define string_compare_locale(str1, str2, codePage) sfall_func3("string_compare", str1, str2, codePage) -#define string_format(format, a1, a2) sfall_func3("string_format", format, a1, a2) +#define string_format1(format, a1) sfall_func2("string_format", format, a1) +#define string_format2(format, a1, a2) sfall_func3("string_format", format, a1, a2) +#define string_format3(format, a1, a2, a3) sfall_func4("string_format", format, a1, a2, a3) +#define string_format4(format, a1, a2, a3, a4) sfall_func5("string_format", format, a1, a2, a3, a4) #define string_tolower(text) sfall_func2("string_to_case", text, 0) #define string_toupper(text) sfall_func2("string_to_case", text, 1) #define tile_by_position(x, y) sfall_func2("tile_by_position", x, y)