Pass object to init_player_object
This commit is contained in:
parent
9f207daf95
commit
6e2ed26659
|
@ -16,6 +16,7 @@
|
|||
#include "fwd-segment.h"
|
||||
#include "fwd-window.h"
|
||||
#include "fwd-valptridx.h"
|
||||
#include "polyobj.h"
|
||||
#include <array>
|
||||
|
||||
struct bitmap_index;
|
||||
|
@ -219,7 +220,7 @@ window_event_result endlevel_move_all_objects();
|
|||
void object_goto_next_viewer();
|
||||
|
||||
// make object0 the player, setting all relevant fields
|
||||
void init_player_object();
|
||||
void init_player_object(const d_level_shared_polygon_model_state &LevelSharedPolygonModelState, object_base &console);
|
||||
|
||||
// check if object is in object->segnum. if not, check the adjacent
|
||||
// segs. if not any of these, returns false, else sets obj->segnum &
|
||||
|
|
|
@ -206,7 +206,7 @@ static inline void editor_slew_init()
|
|||
auto &vmobjptr = Objects.vmptr;
|
||||
Viewer = ConsoleObject;
|
||||
slew_init(vmobjptr(ConsoleObject));
|
||||
init_player_object();
|
||||
init_player_object(LevelSharedPolygonModelState, *ConsoleObject);
|
||||
}
|
||||
|
||||
int DropIntoDebugger()
|
||||
|
|
|
@ -335,7 +335,7 @@ static void verify_object(const d_vclip_array &Vclip, object &obj, const savegam
|
|||
//Assert(obj == Player);
|
||||
|
||||
if (&obj == ConsoleObject)
|
||||
init_player_object();
|
||||
init_player_object(LevelSharedPolygonModelState, obj);
|
||||
else
|
||||
if (obj.render_type == RT_POLYOBJ) //recover from Matt's pof file matchup bug
|
||||
obj.rtype.pobj_info.model_num = Player_ship->model_num;
|
||||
|
|
|
@ -867,20 +867,17 @@ void reset_player_object(object_base &ConsoleObject)
|
|||
}
|
||||
|
||||
//make object0 the player, setting all relevant fields
|
||||
void init_player_object()
|
||||
void init_player_object(const d_level_shared_polygon_model_state &LevelSharedPolygonModelState, object_base &console)
|
||||
{
|
||||
auto &Objects = LevelUniqueObjectState.Objects;
|
||||
auto &vmobjptr = Objects.vmptr;
|
||||
const auto &&console = vmobjptr(ConsoleObject);
|
||||
console->type = OBJ_PLAYER;
|
||||
console.type = OBJ_PLAYER;
|
||||
set_player_id(console, 0); //no sub-types for player
|
||||
console->signature = object_signature_t{0};
|
||||
console.signature = object_signature_t{0};
|
||||
auto &Polygon_models = LevelSharedPolygonModelState.Polygon_models;
|
||||
console->size = Polygon_models[Player_ship->model_num].rad;
|
||||
console->control_source = object::control_type::slew; //default is player slewing
|
||||
console->movement_source = object::movement_type::physics; //change this sometime
|
||||
console->lifeleft = IMMORTAL_TIME;
|
||||
console->attached_obj = object_none;
|
||||
console.size = Polygon_models[Player_ship->model_num].rad;
|
||||
console.control_source = object::control_type::slew; //default is player slewing
|
||||
console.movement_source = object::movement_type::physics; //change this sometime
|
||||
console.lifeleft = IMMORTAL_TIME;
|
||||
console.attached_obj = object_none;
|
||||
reset_player_object(console);
|
||||
}
|
||||
|
||||
|
@ -902,7 +899,7 @@ void init_objects()
|
|||
|
||||
Viewer = ConsoleObject = &Objects.front();
|
||||
|
||||
init_player_object();
|
||||
init_player_object(LevelSharedPolygonModelState, *ConsoleObject);
|
||||
obj_link_unchecked(Objects.vmptr, Objects.vmptridx(ConsoleObject), Segments.vmptridx(segment_first)); //put in the world in segment 0
|
||||
LevelUniqueObjectState.num_objects = 1; //just the player
|
||||
Objects.set_count(1);
|
||||
|
|
Loading…
Reference in a new issue