diff --git a/src/actions.cc b/src/actions.cc index 23f39de..55d2e7b 100644 --- a/src/actions.cc +++ b/src/actions.cc @@ -17,6 +17,7 @@ #include "map.h" #include "memory.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "proto.h" #include "proto_instance.h" diff --git a/src/animation.cc b/src/animation.cc index dde84a5..934104f 100644 --- a/src/animation.cc +++ b/src/animation.cc @@ -17,6 +17,7 @@ #include "item.h" #include "map.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "proto.h" #include "proto_instance.h" diff --git a/src/combat.cc b/src/combat.cc index 05c71db..129668a 100644 --- a/src/combat.cc +++ b/src/combat.cc @@ -21,7 +21,9 @@ #include "loadsave.h" #include "map.h" #include "memory.h" +#include "message.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "pipboy.h" #include "platform_compat.h" @@ -44,11 +46,48 @@ #define CALLED_SHOT_WINDOW_WIDTH (504) #define CALLED_SHOT_WINDOW_HEIGHT (309) +static bool _combat_safety_invalidate_weapon_func(Object* critter, Object* weapon, int hitMode, Object* a4, int* a5, Object* a6); +static int _combatCopyAIInfo(int a1, int a2); +static void _combat_begin(Object* a1); +static void _combat_begin_extra(Object* a1); +static void _combat_over(); +static void _combat_add_noncoms(); +static int _compare_faster(const void* a1, const void* a2); +static void _combat_sequence_init(Object* a1, Object* a2); +static void _combat_sequence(); +static void combatAttemptEnd(); +static int _combat_input(); +static void _combat_set_move_all(); +static int _combat_turn(Object* a1, bool a2); +static bool _combat_should_end(); +static bool _check_ranged_miss(Attack* attack); +static int _shoot_along_path(Attack* attack, int a2, int a3, int anim); +static int _compute_spray(Attack* attack, int accuracy, int* a3, int* a4, int anim); +static int attackComputeEnhancedKnockout(Attack* attack); +static int attackCompute(Attack* attack); +static int attackComputeCriticalHit(Attack* a1); +static int _attackFindInvalidFlags(Object* a1, Object* a2); +static int attackComputeCriticalFailure(Attack* attack); +static int attackDetermineToHit(Object* attacker, int tile, Object* defender, int hitLocation, int hitMode, int a6); +static void attackComputeDamage(Attack* attack, int ammoQuantity, int a3); +static void _check_for_death(Object* a1, int a2, int* a3); +static void _set_new_results(Object* a1, int a2); +static void _damage_object(Object* a1, int damage, bool animated, int a4, Object* a5); +static void combatCopyDamageAmountDescription(char* dest, Object* critter_obj, int damage); +static void combatAddDamageFlagsDescription(char* a1, int flags, Object* a3); +static void _combat_standup(Object* a1); +static void _print_tohit(unsigned char* dest, int dest_pitch, int a3); +static char* hitLocationGetName(Object* critter, int hitLocation); +static void _draw_loc_off(int a1, int a2); +static void _draw_loc_on_(int a1, int a2); +static void _draw_loc_(int eventCode, int color); +static int calledShotSelectHitLocation(Object* critter, int* hitLocation, int hitMode); + // 0x500B50 -char _a_1[] = "."; +static char _a_1[] = "."; // 0x51093C -int _combat_turn_running = 0; +static int _combat_turn_running = 0; // 0x510940 int _combatNumTurns = 0; @@ -57,18 +96,18 @@ int _combatNumTurns = 0; unsigned int gCombatState = COMBAT_STATE_0x02; // 0x510948 -STRUCT_510948* _aiInfoList = NULL; +static STRUCT_510948* _aiInfoList = NULL; // 0x51094C -STRUCT_664980* _gcsd = NULL; +static STRUCT_664980* _gcsd = NULL; // 0x510950 -bool _combat_call_display = false; +static bool _combat_call_display = false; // Accuracy modifiers for hit locations. // // 0x510954 -const int _hit_location_penalty[HIT_LOCATION_COUNT] = { +static const int _hit_location_penalty[HIT_LOCATION_COUNT] = { -40, -30, -30, @@ -83,7 +122,7 @@ const int _hit_location_penalty[HIT_LOCATION_COUNT] = { // Critical hit tables for every kill type. // // 0x510978 -CriticalHitDescription gCriticalHitTables[KILL_TYPE_COUNT][HIT_LOCATION_COUNT][CRTICIAL_EFFECT_COUNT] = { +static CriticalHitDescription gCriticalHitTables[KILL_TYPE_COUNT][HIT_LOCATION_COUNT][CRTICIAL_EFFECT_COUNT] = { // KILL_TYPE_MAN { // HIT_LOCATION_HEAD @@ -1685,7 +1724,7 @@ CriticalHitDescription gCriticalHitTables[KILL_TYPE_COUNT][HIT_LOCATION_COUNT][C // Player's criticals effects. // // 0x5179B0 -CriticalHitDescription gPlayerCriticalHitTable[HIT_LOCATION_COUNT][CRTICIAL_EFFECT_COUNT] = { +static CriticalHitDescription gPlayerCriticalHitTable[HIT_LOCATION_COUNT][CRTICIAL_EFFECT_COUNT] = { { { 3, 0, -1, 0, 0, 6500, 5000 }, { 3, DAM_BYPASS, STAT_ENDURANCE, 3, DAM_KNOCKED_DOWN, 6501, 6503 }, @@ -1761,15 +1800,15 @@ CriticalHitDescription gPlayerCriticalHitTable[HIT_LOCATION_COUNT][CRTICIAL_EFFE }; // 0x517F98 -int _combat_end_due_to_load = 0; +static int _combat_end_due_to_load = 0; // 0x517F9C -bool _combat_cleanup_enabled = false; +static bool _combat_cleanup_enabled = false; // Provides effects caused by failing weapons. // // 0x517FA0 -const int _cf_table[WEAPON_CRITICAL_FAILURE_TYPE_COUNT][WEAPON_CRITICAL_FAILURE_EFFECT_COUNT] = { +static const int _cf_table[WEAPON_CRITICAL_FAILURE_TYPE_COUNT][WEAPON_CRITICAL_FAILURE_EFFECT_COUNT] = { { 0, DAM_LOSE_TURN, DAM_LOSE_TURN, DAM_HURT_SELF | DAM_KNOCKED_DOWN, DAM_CRIP_RANDOM }, { 0, DAM_LOSE_TURN, DAM_DROP, DAM_RANDOM_HIT, DAM_HIT_SELF }, { 0, DAM_LOSE_AMMO, DAM_DROP, DAM_RANDOM_HIT, DAM_DESTROY }, @@ -1780,7 +1819,7 @@ const int _cf_table[WEAPON_CRITICAL_FAILURE_TYPE_COUNT][WEAPON_CRITICAL_FAILURE_ }; // 0x51802C -const int _call_ty[4] = { +static const int _call_ty[4] = { 122, 188, 251, @@ -1788,7 +1827,7 @@ const int _call_ty[4] = { }; // 0x51803C -const int _hit_loc_left[4] = { +static const int _hit_loc_left[4] = { HIT_LOCATION_HEAD, HIT_LOCATION_EYES, HIT_LOCATION_RIGHT_ARM, @@ -1796,7 +1835,7 @@ const int _hit_loc_left[4] = { }; // 0x51804C -const int _hit_loc_right[4] = { +static const int _hit_loc_right[4] = { HIT_LOCATION_TORSO, HIT_LOCATION_GROIN, HIT_LOCATION_LEFT_ARM, @@ -1804,51 +1843,51 @@ const int _hit_loc_right[4] = { }; // 0x56D2B0 -Attack _main_ctd; +static Attack _main_ctd; // combat.msg // // 0x56D368 -MessageList gCombatMessageList; +static MessageList gCombatMessageList; // 0x56D370 -Object* gCalledShotCritter; +static Object* gCalledShotCritter; // 0x56D374 -int gCalledShotWindow; +static int gCalledShotWindow; // 0x56D378 -int _combat_elev; +static int _combat_elev; // 0x56D37C -int _list_total; +static int _list_total; // Probably last who_hit_me of obj_dude // // 0x56D380 -Object* _combat_ending_guy; +static Object* _combat_ending_guy; // 0x56D384 -int _list_noncom; +static int _list_noncom; // 0x56D388 -Object* _combat_turn_obj; +static Object* _combat_turn_obj; // target_highlight // // 0x56D38C -int _combat_highlight; +static int _combat_highlight; // 0x56D390 -Object** _combat_list; +static Object** _combat_list; // 0x56D394 -int _list_com; +static int _list_com; // Experience received for killing critters during current combat. // // 0x56D398 -int _combat_exps; +static int _combat_exps; // bonus action points from BONUS_MOVE perk. // @@ -1856,10 +1895,10 @@ int _combat_exps; int _combat_free_move; // 0x56D3A0 -Attack _shoot_ctd; +static Attack _shoot_ctd; // 0x56D458 -Attack _explosion_ctd; +static Attack _explosion_ctd; // combat_init // 0x420CC0 @@ -2117,7 +2156,7 @@ bool _combat_safety_invalidate_weapon(Object* a1, Object* a2, int hitMode, Objec } // 0x4213FC -bool _combat_safety_invalidate_weapon_func(Object* critter, Object* weapon, int hitMode, Object* a4, int* a5, Object* a6) +static bool _combat_safety_invalidate_weapon_func(Object* critter, Object* weapon, int hitMode, Object* a4, int* a5, Object* a6) { if (a5 != NULL) { *a5 = 0; @@ -2244,7 +2283,7 @@ void _combat_data_init(Object* obj) } // 0x421850 -int _combatCopyAIInfo(int a1, int a2) +static int _combatCopyAIInfo(int a1, int a2) { STRUCT_510948* v3; STRUCT_510948* v4; @@ -2393,7 +2432,7 @@ int _combatAIInfoSetLastItem(Object* obj, Object* a2) } // 0x421A34 -void _combat_begin(Object* a1) +static void _combat_begin(Object* a1) { _combat_turn_running = 0; _anim_stop(); @@ -2476,7 +2515,7 @@ void _combat_begin(Object* a1) } // 0x421C8C -void _combat_begin_extra(Object* a1) +static void _combat_begin_extra(Object* a1) { for (int index = 0; index < _list_total; index++) { _combat_update_critter_outline_for_los(_combat_list[index], 0); @@ -2581,7 +2620,7 @@ void _combat_update_critter_outline_for_los(Object* critter, bool a2) // Probably complete combat sequence. // // 0x421EFC -void _combat_over() +static void _combat_over() { if (_game_user_wants_to_quit == 0) { for (int index = 0; index < _list_com; index++) { @@ -2720,7 +2759,7 @@ void _combat_give_exps(int exp_points) } // 0x4222A8 -void _combat_add_noncoms() +static void _combat_add_noncoms() { _combatai_notify_friends(gDude); @@ -2757,7 +2796,7 @@ void _combat_add_noncoms() // Compares critters by sequence. // // 0x4223C8 -int _compare_faster(const void* a1, const void* a2) +static int _compare_faster(const void* a1, const void* a2) { Object* v1 = *(Object**)a1; Object* v2 = *(Object**)a2; @@ -2782,7 +2821,7 @@ int _compare_faster(const void* a1, const void* a2) } // 0x42243C -void _combat_sequence_init(Object* a1, Object* a2) +static void _combat_sequence_init(Object* a1, Object* a2) { int next = 0; if (a1 != NULL) { @@ -2837,7 +2876,7 @@ void _combat_sequence_init(Object* a1, Object* a2) } // 0x422580 -void _combat_sequence() +static void _combat_sequence() { _combat_add_noncoms(); @@ -2886,7 +2925,7 @@ void _combat_sequence() } // 0x422694 -void combatAttemptEnd() +static void combatAttemptEnd() { if (_combat_elev == gDude->elevation) { MessageListItem messageListItem; @@ -2940,7 +2979,7 @@ void _combat_turn_run() } // 0x4227F4 -int _combat_input() +static int _combat_input() { while ((gCombatState & COMBAT_STATE_0x02) != 0) { if ((gCombatState & COMBAT_STATE_0x08) != 0) { @@ -3002,7 +3041,7 @@ int _combat_input() } // 0x422914 -void _combat_set_move_all() +static void _combat_set_move_all() { for (int index = 0; index < _list_com; index++) { Object* object = _combat_list[index]; @@ -3024,7 +3063,7 @@ void _combat_set_move_all() } // 0x42299C -int _combat_turn(Object* a1, bool a2) +static int _combat_turn(Object* a1, bool a2) { _combat_turn_obj = a1; @@ -3140,7 +3179,7 @@ int _combat_turn(Object* a1, bool a2) } // 0x422C60 -bool _combat_should_end() +static bool _combat_should_end() { if (_list_com <= 1) { return true; @@ -3370,7 +3409,7 @@ int _combat_bullet_start(const Object* a1, const Object* a2) } // 0x423128 -bool _check_ranged_miss(Attack* attack) +static bool _check_ranged_miss(Attack* attack) { int range = _item_w_range(attack->attacker, attack->hitMode); int to = _tile_num_beyond(attack->attacker->tile, attack->defender->tile, range); @@ -3425,7 +3464,7 @@ bool _check_ranged_miss(Attack* attack) } // 0x423284 -int _shoot_along_path(Attack* attack, int a2, int a3, int anim) +static int _shoot_along_path(Attack* attack, int a2, int a3, int anim) { int v5 = a3; int v17 = 0; @@ -3499,7 +3538,7 @@ int _shoot_along_path(Attack* attack, int a2, int a3, int anim) } // 0x423488 -int _compute_spray(Attack* attack, int accuracy, int* a3, int* a4, int anim) +static int _compute_spray(Attack* attack, int accuracy, int* a3, int* a4, int anim) { *a3 = 0; @@ -3592,7 +3631,7 @@ int _compute_spray(Attack* attack, int accuracy, int* a3, int* a4, int anim) } // 0x423714 -int attackComputeEnhancedKnockout(Attack* attack) +static int attackComputeEnhancedKnockout(Attack* attack) { if (weaponGetPerk(attack->weapon) == PERK_WEAPON_ENHANCED_KNOCKOUT) { int difficulty = critterGetStat(attack->attacker, STAT_STRENGTH) - 8; @@ -3613,7 +3652,7 @@ int attackComputeEnhancedKnockout(Attack* attack) } // 0x42378C -int attackCompute(Attack* attack) +static int attackCompute(Attack* attack) { int range = _item_w_range(attack->attacker, attack->hitMode); int distance = objectGetDistanceBetween(attack->attacker, attack->defender); @@ -3869,7 +3908,7 @@ void _compute_explosion_on_extras(Attack* attack, int a2, int a3, int a4) } // 0x423EB4 -int attackComputeCriticalHit(Attack* attack) +static int attackComputeCriticalHit(Attack* attack) { Object* defender = attack->defender; if (defender != NULL && _critter_flag_check(defender->pid, 1024)) { @@ -3956,7 +3995,7 @@ int attackComputeCriticalHit(Attack* attack) } // 0x424088 -int _attackFindInvalidFlags(Object* critter, Object* item) +static int _attackFindInvalidFlags(Object* critter, Object* item) { int flags = 0; @@ -3972,7 +4011,7 @@ int _attackFindInvalidFlags(Object* critter, Object* item) } // 0x4240DC -int attackComputeCriticalFailure(Attack* attack) +static int attackComputeCriticalFailure(Attack* attack) { attack->attackerFlags |= DAM_HIT; @@ -4097,7 +4136,7 @@ int _determine_to_hit_from_tile(Object* a1, int tile, Object* a3, int hitLocatio // determine_to_hit // 0x4243A8 -int attackDetermineToHit(Object* attacker, int tile, Object* defender, int hitLocation, int hitMode, int a6) +static int attackDetermineToHit(Object* attacker, int tile, Object* defender, int hitLocation, int hitMode, int a6) { Object* weapon = critterGetWeaponForHitMode(attacker, hitMode); @@ -4284,7 +4323,7 @@ int attackDetermineToHit(Object* attacker, int tile, Object* defender, int hitLo } // 0x4247B8 -void attackComputeDamage(Attack* attack, int ammoQuantity, int a3) +static void attackComputeDamage(Attack* attack, int ammoQuantity, int a3) { int* damagePtr; Object* critter; @@ -4538,7 +4577,7 @@ void _apply_damage(Attack* attack, bool animated) } // 0x424EE8 -void _check_for_death(Object* object, int damage, int* flags) +static void _check_for_death(Object* object, int damage, int* flags) { if (object == NULL || !_critter_flag_check(object->pid, 0x0400)) { if (object == NULL || (object->pid >> 24) == OBJ_TYPE_CRITTER) { @@ -4552,7 +4591,7 @@ void _check_for_death(Object* object, int damage, int* flags) } // 0x424F2C -void _set_new_results(Object* critter, int flags) +static void _set_new_results(Object* critter, int flags) { if (critter == NULL) { return; @@ -4590,7 +4629,7 @@ void _set_new_results(Object* critter, int flags) } // 0x425020 -void _damage_object(Object* a1, int damage, bool animated, int a4, Object* a5) +static void _damage_object(Object* a1, int damage, bool animated, int a4, Object* a5) { if (a1 == NULL) { return; @@ -4960,7 +4999,7 @@ void _combat_display(Attack* attack) } // 0x425A9C -void combatCopyDamageAmountDescription(char* dest, Object* critter, int damage) +static void combatCopyDamageAmountDescription(char* dest, Object* critter, int damage) { MessageListItem messageListItem; char text[40]; @@ -5019,7 +5058,7 @@ void combatCopyDamageAmountDescription(char* dest, Object* critter, int damage) } // 0x425BA4 -void combatAddDamageFlagsDescription(char* dest, int flags, Object* critter) +static void combatAddDamageFlagsDescription(char* dest, int flags, Object* critter) { MessageListItem messageListItem; @@ -5163,7 +5202,7 @@ void _combat_anim_finished() } // 0x425FBC -void _combat_standup(Object* a1) +static void _combat_standup(Object* a1) { int v2; @@ -5191,7 +5230,7 @@ void _combat_standup(Object* a1) // Render two digits. // // 0x42603C -void _print_tohit(unsigned char* dest, int destPitch, int accuracy) +static void _print_tohit(unsigned char* dest, int destPitch, int accuracy) { CacheEntry* numbersFrmHandle; int numbersFrmFid = buildFid(6, 82, 0, 0, 0); @@ -5212,7 +5251,7 @@ void _print_tohit(unsigned char* dest, int destPitch, int accuracy) } // 0x42612C -char* hitLocationGetName(Object* critter, int hitLocation) +static char* hitLocationGetName(Object* critter, int hitLocation) { MessageListItem messageListItem; messageListItem.num = 1000 + 10 * _art_alias_num(critter->fid & 0xFFF) + hitLocation; @@ -5224,19 +5263,19 @@ char* hitLocationGetName(Object* critter, int hitLocation) } // 0x4261B4 -void _draw_loc_off(int a1, int a2) +static void _draw_loc_off(int a1, int a2) { _draw_loc_(a2, _colorTable[992]); } // 0x4261C0 -void _draw_loc_on_(int a1, int a2) +static void _draw_loc_on_(int a1, int a2) { _draw_loc_(a2, _colorTable[31744]); } // 0x4261CC -void _draw_loc_(int eventCode, int color) +static void _draw_loc_(int eventCode, int color) { color |= 0x3000000; @@ -5251,7 +5290,7 @@ void _draw_loc_(int eventCode, int color) } // 0x426218 -int calledShotSelectHitLocation(Object* critter, int* hitLocation, int hitMode) +static int calledShotSelectHitLocation(Object* critter, int* hitLocation, int hitMode) { if (critter == NULL) { return 0; diff --git a/src/combat.h b/src/combat.h index 2f6307e..285587d 100644 --- a/src/combat.h +++ b/src/combat.h @@ -1,48 +1,15 @@ #ifndef COMBAT_H #define COMBAT_H -#include "animation.h" #include "db.h" #include "combat_defs.h" -#include "message.h" #include "obj_types.h" -#include "party_member.h" #include "proto_types.h" -extern char _a_1[]; - -extern int _combat_turn_running; extern int _combatNumTurns; extern unsigned int gCombatState; -extern STRUCT_510948* _aiInfoList; -extern STRUCT_664980* _gcsd; -extern bool _combat_call_display; -extern const int _hit_location_penalty[HIT_LOCATION_COUNT]; -extern CriticalHitDescription gCriticalHitTables[KILL_TYPE_COUNT][HIT_LOCATION_COUNT][CRTICIAL_EFFECT_COUNT]; -extern CriticalHitDescription gPlayerCriticalHitTable[HIT_LOCATION_COUNT][CRTICIAL_EFFECT_COUNT]; -extern int _combat_end_due_to_load; -extern bool _combat_cleanup_enabled; -extern const int _cf_table[WEAPON_CRITICAL_FAILURE_TYPE_COUNT][WEAPON_CRITICAL_FAILURE_EFFECT_COUNT]; -extern const int _call_ty[4]; -extern const int _hit_loc_left[4]; -extern const int _hit_loc_right[4]; -extern Attack _main_ctd; -extern MessageList gCombatMessageList; -extern Object* gCalledShotCritter; -extern int gCalledShotWindow; -extern int _combat_elev; -extern int _list_total; -extern Object* _combat_ending_guy; -extern int _list_noncom; -extern Object* _combat_turn_obj; -extern int _combat_highlight; -extern Object** _combat_list; -extern int _list_com; -extern int _combat_exps; extern int _combat_free_move; -extern Attack _shoot_ctd; -extern Attack _explosion_ctd; int combatInit(); void combatReset(); @@ -51,68 +18,32 @@ int _find_cid(int a1, int a2, Object** a3, int a4); int combatLoad(File* stream); int combatSave(File* stream); bool _combat_safety_invalidate_weapon(Object* a1, Object* a2, int hitMode, Object* a4, int* a5); -bool _combat_safety_invalidate_weapon_func(Object* critter, Object* weapon, int hitMode, Object* a4, int* a5, Object* a6); bool _combatTestIncidentalHit(Object* a1, Object* a2, Object* a3, Object* a4); Object* _combat_whose_turn(); void _combat_data_init(Object* obj); -int _combatCopyAIInfo(int a1, int a2); Object* _combatAIInfoGetFriendlyDead(Object* obj); int _combatAIInfoSetFriendlyDead(Object* a1, Object* a2); Object* _combatAIInfoGetLastTarget(Object* obj); int _combatAIInfoSetLastTarget(Object* a1, Object* a2); Object* _combatAIInfoGetLastItem(Object* obj); int _combatAIInfoSetLastItem(Object* obj, Object* a2); -void _combat_begin(Object* a1); -void _combat_begin_extra(Object* a1); void _combat_update_critter_outline_for_los(Object* critter, bool a2); -void _combat_over(); void _combat_over_from_load(); void _combat_give_exps(int exp_points); -void _combat_add_noncoms(); -int _compare_faster(const void* a1, const void* a2); -void _combat_sequence_init(Object* a1, Object* a2); -void _combat_sequence(); -void combatAttemptEnd(); void _combat_turn_run(); -int _combat_input(); -void _combat_set_move_all(); -int _combat_turn(Object* a1, bool a2); -bool _combat_should_end(); void _combat(STRUCT_664980* attack); void attackInit(Attack* attack, Object* a2, Object* a3, int a4, int a5); int _combat_attack(Object* a1, Object* a2, int a3, int a4); int _combat_bullet_start(const Object* a1, const Object* a2); -bool _check_ranged_miss(Attack* attack); -int _shoot_along_path(Attack* attack, int a2, int a3, int anim); -int _compute_spray(Attack* attack, int accuracy, int* a3, int* a4, int anim); -int attackComputeEnhancedKnockout(Attack* attack); -int attackCompute(Attack* attack); void _compute_explosion_on_extras(Attack* attack, int a2, int a3, int a4); -int attackComputeCriticalHit(Attack* a1); -int _attackFindInvalidFlags(Object* a1, Object* a2); -int attackComputeCriticalFailure(Attack* attack); int _determine_to_hit(Object* a1, Object* a2, int hitLocation, int hitMode); int _determine_to_hit_no_range(Object* a1, Object* a2, int a3, int a4, unsigned char* a5); int _determine_to_hit_from_tile(Object* a1, int a2, Object* a3, int a4, int a5); -int attackDetermineToHit(Object* attacker, int tile, Object* defender, int hitLocation, int hitMode, int a6); -void attackComputeDamage(Attack* attack, int ammoQuantity, int a3); void attackComputeDeathFlags(Attack* attack); void _apply_damage(Attack* attack, bool animated); -void _check_for_death(Object* a1, int a2, int* a3); -void _set_new_results(Object* a1, int a2); -void _damage_object(Object* a1, int damage, bool animated, int a4, Object* a5); void _combat_display(Attack* attack); -void combatCopyDamageAmountDescription(char* dest, Object* critter_obj, int damage); -void combatAddDamageFlagsDescription(char* a1, int flags, Object* a3); void _combat_anim_begin(); void _combat_anim_finished(); -void _combat_standup(Object* a1); -void _print_tohit(unsigned char* dest, int dest_pitch, int a3); -char* hitLocationGetName(Object* critter, int hitLocation); -void _draw_loc_off(int a1, int a2); -void _draw_loc_on_(int a1, int a2); -void _draw_loc_(int eventCode, int color); -int calledShotSelectHitLocation(Object* critter, int* hitLocation, int hitMode); int _combat_check_bad_shot(Object* attacker, Object* defender, int hitMode, bool aiming); bool _combat_to_hit(Object* target, int* accuracy); void _combat_attack_this(Object* a1); diff --git a/src/game_dialog.cc b/src/game_dialog.cc index b4b31d7..8e51fb5 100644 --- a/src/game_dialog.cc +++ b/src/game_dialog.cc @@ -1,6 +1,7 @@ #include "game_dialog.h" #include "actions.h" +#include "animation.h" #include "color.h" #include "combat.h" #include "combat_ai.h" @@ -19,6 +20,7 @@ #include "lips.h" #include "memory.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "proto.h" #include "random.h" diff --git a/src/game_mouse.cc b/src/game_mouse.cc index 5a0f96b..e999f1f 100644 --- a/src/game_mouse.cc +++ b/src/game_mouse.cc @@ -1,6 +1,7 @@ #include "game_mouse.h" #include "actions.h" +#include "animation.h" #include "color.h" #include "combat.h" #include "core.h" diff --git a/src/game_sound.cc b/src/game_sound.cc index 61cdadd..1e6b0b9 100644 --- a/src/game_sound.cc +++ b/src/game_sound.cc @@ -1,5 +1,6 @@ #include "game_sound.h" +#include "animation.h" #include "audio.h" #include "combat.h" #include "core.h" diff --git a/src/interpreter_extra.cc b/src/interpreter_extra.cc index 0557437..5076b3a 100644 --- a/src/interpreter_extra.cc +++ b/src/interpreter_extra.cc @@ -23,6 +23,7 @@ #include "map.h" #include "object.h" #include "palette.h" +#include "party_member.h" #include "perk.h" #include "proto.h" #include "proto_instance.h" diff --git a/src/inventory.cc b/src/inventory.cc index 0340595..a264159 100644 --- a/src/inventory.cc +++ b/src/inventory.cc @@ -22,6 +22,7 @@ #include "light.h" #include "map.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "platform_compat.h" #include "proto.h" diff --git a/src/item.cc b/src/item.cc index 332aad7..e896dbf 100644 --- a/src/item.cc +++ b/src/item.cc @@ -13,6 +13,7 @@ #include "map.h" #include "memory.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "platform_compat.h" #include "proto.h" diff --git a/src/loadsave.cc b/src/loadsave.cc index dda3761..f146281 100644 --- a/src/loadsave.cc +++ b/src/loadsave.cc @@ -24,6 +24,7 @@ #include "memory.h" #include "object.h" #include "options.h" +#include "party_member.h" #include "perk.h" #include "pipboy.h" #include "proto.h" diff --git a/src/map.cc b/src/map.cc index 1623701..ee8b195 100644 --- a/src/map.cc +++ b/src/map.cc @@ -22,6 +22,7 @@ #include "memory.h" #include "object.h" #include "palette.h" +#include "party_member.h" #include "pipboy.h" #include "proto.h" #include "proto_instance.h" diff --git a/src/pipboy.cc b/src/pipboy.cc index bd5eac3..0a210df 100644 --- a/src/pipboy.cc +++ b/src/pipboy.cc @@ -19,6 +19,7 @@ #include "map.h" #include "memory.h" #include "object.h" +#include "party_member.h" #include "platform_compat.h" #include "queue.h" #include "random.h" diff --git a/src/scripts.cc b/src/scripts.cc index 6bb43a6..e368afd 100644 --- a/src/scripts.cc +++ b/src/scripts.cc @@ -1,6 +1,7 @@ #include "scripts.h" #include "actions.h" +#include "animation.h" #include "automap.h" #include "combat.h" #include "core.h" @@ -16,6 +17,7 @@ #include "game_movie.h" #include "memory.h" #include "object.h" +#include "party_member.h" #include "platform_compat.h" #include "proto.h" #include "proto_instance.h" diff --git a/src/stat.cc b/src/stat.cc index 4579906..a82adaa 100644 --- a/src/stat.cc +++ b/src/stat.cc @@ -11,6 +11,7 @@ #include "memory.h" #include "message.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "platform_compat.h" #include "proto.h" diff --git a/src/world_map.cc b/src/world_map.cc index 143d94b..3a48af3 100644 --- a/src/world_map.cc +++ b/src/world_map.cc @@ -1,5 +1,6 @@ #include "world_map.h" +#include "animation.h" #include "color.h" #include "combat.h" #include "combat_ai.h" @@ -20,6 +21,7 @@ #include "item.h" #include "memory.h" #include "object.h" +#include "party_member.h" #include "perk.h" #include "proto_instance.h" #include "queue.h"