Skip to content

Commit 4f9db52

Browse files
authored
Merge branch 'scp-fs2open:master' into master
2 parents 4ae9917 + 7875e5f commit 4f9db52

485 files changed

Lines changed: 45929 additions & 17924 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-tidy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,7 @@ CheckOptions:
4848
value: 'std::vector;std::deque;std::list;SCP_vector;SCP_deque;SCP_list'
4949
- key: 'readability-braces-around-statements.ShortStatementLines'
5050
value: '4' # Avoid flagging simple if (...) return false; statements
51+
- key: 'performance-move-const-arg.CheckTriviallyCopyableMove' # This isn't actually performance relevant, but using move on trivially copyable types can well indicate that the variable should not be used anymore, such as when passing a builder type to the finialization function
52+
value: 'false'
5153
...
5254

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,3 +260,5 @@ CMakePresets.json
260260
!/code/scripting/lua/LuaConvert.h
261261
!/code/debugconsole/
262262
!/docker/build
263+
CMakeFiles/cmake.check_cache
264+
CMakeCache.txt

ci/linux/clang_tidy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ git diff -U0 --no-color "$BASE_COMMIT..$2" | \
2626
-extra-arg="-DWITH_VULKAN" \
2727
-extra-arg="-DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1" \
2828
-extra-arg="-DVK_NO_PROTOTYPES" \
29-
-regex '(code(?!((\/graphics\/shaders\/compiled)|(\/globalincs\/windebug)))|freespace2|qtfred|test\/src|build|tools)\/.*\.(cpp|h)' \
29+
-regex '(code(?!((\/graphics\/shaders\/compiled)|(\/globalincs\/windebug)|(\/def_files\/data)))|freespace2|qtfred|test\/src|build|tools)\/.*\.(cpp|h)' \
3030
-clang-tidy-binary /usr/bin/clang-tidy-16 -j$(nproc) -export-fixes "$(pwd)/clang-fixes.yaml"

cmake/globals.cmake

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,19 @@ else()
99
endif()
1010

1111
set(IS_ARM64 FALSE)
12+
set(IS_ARMV7A FALSE)
1213

1314
if (NOT "${CMAKE_GENERATOR_PLATFORM}" STREQUAL "") # needed to cover Visual Studio generator
1415
if(CMAKE_GENERATOR_PLATFORM MATCHES "^(aarch64|arm64|ARM64)")
1516
set(IS_ARM64 TRUE)
17+
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^(armv7)")
18+
set(IS_ARMV7A TRUE)
1619
endif()
1720
else()
1821
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64)")
1922
set(IS_ARM64 TRUE)
23+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv7)")
24+
set(IS_ARMV7A TRUE)
2025
endif()
2126
endif()
2227

@@ -33,6 +38,6 @@ else()
3338
endif()
3439

3540
set(IS_X86 FALSE)
36-
if (NOT IS_ARM64 AND NOT IS_RISCV)
41+
if (NOT IS_ARM64 AND NOT IS_RISCV AND NOT IS_ARMV7A)
3742
set(IS_X86 TRUE)
3843
endif()

code/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ endif()
5959

6060
target_link_libraries(code PUBLIC libRocket)
6161

62-
target_link_libraries(code PUBLIC pcp)
62+
target_link_libraries(code PUBLIC pcpnatpmp)
6363

6464
target_link_libraries(code PUBLIC parsers)
6565

code/ai/ai.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ const char *ai_get_goal_target_name(const char *name, int *index);
527527
void ai_clear_goal_target_names();
528528

529529
extern void init_ai_system(void);
530-
extern void ai_attack_object(object *attacker, object *attacked, int ship_info_index = -1);
530+
extern void ai_attack_object(object *attacker, object *attacked, int ship_info_index = -1, int class_type = -1);
531531
extern void ai_evade_object(object *evader, object *evaded);
532532
extern void ai_ignore_object(object *ignorer, object *ignored, int ignore_new);
533533
extern void ai_ignore_wing(object *ignorer, int wingnum);
@@ -559,7 +559,7 @@ extern void ai_set_guard_wing(object *objp, int wingnum);
559559
extern void ai_warp_out(object *objp, vec3d *vp);
560560
extern void ai_attack_wing(object *attacker, int wingnum);
561561
extern void ai_deathroll_start(object *ship_obj);
562-
extern int set_target_objnum(ai_info *aip, int objnum);
562+
extern int set_target_objnum(ai_info* aip, int objnum);
563563
extern void ai_form_on_wing(object *objp, object *goal_objp);
564564
extern void ai_do_stay_near(object *objp, object *other_obj, float dist, int additional_data);
565565
extern ship_subsys *set_targeted_subsys(ai_info *aip, ship_subsys *new_subsys, int parent_objnum);
@@ -596,7 +596,7 @@ extern int ai_maybe_fire_afterburner(object *objp, ai_info *aip);
596596
extern void set_predicted_enemy_pos(vec3d *predicted_enemy_pos, object *pobjp, vec3d *enemy_pos, vec3d *enemy_vel, ai_info *aip);
597597

598598
extern int is_instructor(object *objp);
599-
extern int find_enemy(int objnum, float range, int max_attackers, int ship_info_index = -1);
599+
extern int find_enemy(int objnum, float range, int max_attackers, int ship_info_index = -1, int class_type = -1);
600600

601601
float ai_get_weapon_speed(const ship_weapon *swp);
602602
void set_predicted_enemy_pos_turret(vec3d *predicted_enemy_pos, const vec3d *gun_pos, const object *pobjp, const vec3d *enemy_pos, const vec3d *enemy_vel, float weapon_speed, float time_enemy_in_range);
@@ -617,7 +617,7 @@ extern float dock_orient_and_approach(object *docker_objp, int docker_index, obj
617617
void ai_set_mode_warp_out(object *objp, ai_info *aip);
618618

619619
// prototyped by Goober5000
620-
int get_nearest_objnum(int objnum, int enemy_team_mask, int enemy_wing, float range, int max_attackers, int ship_info_index);
620+
int get_nearest_objnum(int objnum, int enemy_team_mask, int enemy_wing, float range, int max_attackers, int ship_info_index, int class_type = -1);
621621

622622
// moved to header file by Goober5000
623623
void ai_announce_ship_dying(object *dying_objp);

code/ai/ai_flags.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ namespace AI {
142142
Fightercraft_nonshielded_ships_can_manage_ets,
143143
Ships_playing_dead_dont_manage_ets,
144144
Better_combat_collision_avoidance,
145+
Better_combat_collision_avoid_includes_target,
145146
Better_guard_collision_avoidance,
146147
Require_exact_los,
147148
Improved_missile_avoidance,

code/ai/ai_profiles.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,8 @@ void parse_ai_profiles_tbl(const char *filename)
588588
stuff_float(&profile->better_collision_avoid_aggression_combat);
589589
}
590590

591+
set_flag(profile, "+combat collision avoidance for fightercraft includes target:", AI::Profile_Flags::Better_combat_collision_avoid_includes_target);
592+
591593
set_flag(profile, "$better guard collision avoidance for fightercraft:", AI::Profile_Flags::Better_guard_collision_avoidance);
592594

593595
if (optional_string("+guard collision avoidance aggression for fightercraft:")) {
@@ -699,6 +701,10 @@ void parse_ai_profiles_tbl(const char *filename)
699701
}
700702
}
701703

704+
if (optional_string("$attack-any idle circle distance:")) {
705+
stuff_float(&profile->attack_any_idle_circle_distance);
706+
}
707+
702708
set_flag(profile, "$unify usage of AI Shield Manage Delay:", AI::Profile_Flags::Unify_usage_ai_shield_manage_delay);
703709

704710
set_flag(profile, "$fix AI shield management bug:", AI::Profile_Flags::Fix_AI_shield_management_bug);
@@ -815,6 +821,7 @@ void ai_profile_t::reset()
815821

816822
guard_big_orbit_above_target_radius = 500.0f;
817823
guard_big_orbit_max_speed_percent = 1.0f;
824+
attack_any_idle_circle_distance = 100.0f;
818825

819826
for (int i = 0; i < NUM_SKILL_LEVELS; ++i) {
820827
max_incoming_asteroids[i] = 0;

code/ai/ai_profiles.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ class ai_profile_t {
144144
float guard_big_orbit_above_target_radius; // Radius of guardee that triggers ai_big_guard()
145145
float guard_big_orbit_max_speed_percent; // Max percent of forward speed that is used in ai_big_guard()
146146

147+
// AI attack any option --wookieejedi
148+
float attack_any_idle_circle_distance; // Radius that AI circles around a point while waiting for new enemies in attack-any mode
149+
147150
void reset();
148151
};
149152

0 commit comments

Comments
 (0)