MCPcopy Create free account
hub / github.com/Panzerschrek/Chasm-Reverse / ReturnProcedure

Method ReturnProcedure

PanzerChasm/server/map.cpp:2471–2512  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2469}
2470
2471void Map::ReturnProcedure( const unsigned int procedure_number, const Time current_time )
2472{
2473 PC_ASSERT( procedure_number < map_data_->procedures.size() );
2474
2475 const MapData::Procedure& procedure= map_data_->procedures[ procedure_number ];
2476 ProcedureState& procedure_state= procedures_[ procedure_number ];
2477
2478 if( procedure_state.locked )
2479 return;
2480
2481 switch( procedure_state.movement_state )
2482 {
2483 case ProcedureState::MovementState::None:
2484 case ProcedureState::MovementState::ReverseMovement:
2485 break;
2486
2487 case ProcedureState::MovementState::StartWait:
2488 procedure_state.movement_state= ProcedureState::MovementState::None;
2489 break;
2490
2491 case ProcedureState::MovementState::Movement:
2492 {
2493 procedure_state.movement_state= ProcedureState::MovementState::ReverseMovement;
2494 float dt_s;
2495 if( procedure.speed > 0.0f )
2496 dt_s=
2497 std::max(
2498 1.0f / ( procedure.speed * GameConstants::procedures_speed_scale ) -
2499 ( current_time - procedure_state.last_state_change_time ).ToSeconds(),
2500 0.0f );
2501 else
2502 dt_s= 0.0f;
2503 procedure_state.last_state_change_time= current_time - Time::FromSeconds(dt_s);
2504 }
2505 break;
2506
2507 case ProcedureState::MovementState::BackWait:
2508 procedure_state.movement_state= ProcedureState::MovementState::ReverseMovement;
2509 procedure_state.last_state_change_time= current_time;
2510 break;
2511 };
2512}
2513
2514void Map::ProcessWind( const MapData::Procedure::ActionCommand& command, bool activate )
2515{

Callers

nothing calls this directly

Calls 1

ToSecondsMethod · 0.80

Tested by

no test coverage detected