MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / process_level_path

Method process_level_path

ogsr_engine/xrGame/movement_manager_level.cpp:21–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19#include "mt_config.h"
20
21void CMovementManager::process_level_path()
22{
23 START_PROFILE("Build Path/Process Level Path");
24
25 if (!level_path().actual() && (m_path_state > ePathStateBuildLevelPath))
26 m_path_state = ePathStateBuildLevelPath;
27
28 switch (m_path_state)
29 {
30 case ePathStateBuildLevelPath: {
31 if (can_use_distributed_computations(mtLevelPath))
32 {
33 level_path_builder().setup(object().ai_location().level_vertex_id(), level_dest_vertex_id());
34
35 break;
36 }
37
38 level_path().build_path(object().ai_location().level_vertex_id(), level_dest_vertex_id());
39
40 if (level_path().failed())
41 break;
42
43 m_path_state = ePathStateContinueLevelPath;
44
45 // if (time_over())
46 if (!m_build_at_once)
47 break;
48 }
49 case ePathStateContinueLevelPath: {
50 level_path().select_intermediate_vertex();
51
52 m_path_state = ePathStateBuildDetailPath;
53
54 // if (time_over())
55 // break;
56 }
57 case ePathStateBuildDetailPath: {
58 detail().set_state_patrol_path(extrapolate_path());
59 detail().set_start_position(object().Position());
60 detail().set_start_direction(Fvector().setHP(-m_body.current.yaw, 0));
61
62 if (can_use_distributed_computations(mtDetailPath))
63 {
64 detail_path_builder().setup(level_path().path(), level_path().intermediate_index());
65
66 break;
67 }
68
69 detail().build_path(level_path().path(), level_path().intermediate_index());
70
71 on_build_path();
72
73 if (detail().failed())
74 {
75 m_path_state = ePathStateBuildLevelPath;
76 break;
77 }
78

Callers

nothing calls this directly

Calls 15

set_state_patrol_pathMethod · 0.80
set_start_positionMethod · 0.80
PositionMethod · 0.80
set_start_directionMethod · 0.80
setHPMethod · 0.80
intermediate_indexMethod · 0.80
state_patrol_pathMethod · 0.80
objectFunction · 0.50
actualMethod · 0.45
setupMethod · 0.45
level_vertex_idMethod · 0.45
build_pathMethod · 0.45

Tested by

no test coverage detected