diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index 9e6d6a79b..f3cf8e7d3 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -2860,7 +2860,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6) { if (po[p].os == actor->spr.sector()) { - po[p].ox += m; + po[p].opos.X += m; po[p].oy += x; } @@ -3052,7 +3052,7 @@ void handle_se30(DDukeActor *actor, int JIBS6) if (po[p].os == actor->spr.sector()) { - po[p].ox += l; + po[p].opos.X += l; po[p].oy += x; } } diff --git a/source/games/duke/src/premap.cpp b/source/games/duke/src/premap.cpp index 446c45ad7..848334106 100644 --- a/source/games/duke/src/premap.cpp +++ b/source/games/duke/src/premap.cpp @@ -60,7 +60,7 @@ void pickrandomspot(int snum) i = krand()%numplayersprites; else i = snum; - p->bobposx = p->opos.X = p->pos.X = po[i].ox; + p->bobposx = p->opos.X = p->pos.X = po[i].opos.X; p->bobposy = p->opos.Y = p->pos.Y = po[i].oy; p->opos.Z = p->pos.Z = po[i].oz; p->angle.oang = p->angle.ang = buildang(po[i].oa); @@ -581,7 +581,7 @@ void resetpspritevars(int g) firsty = ps[0].pos.Y; } - po[numplayersprites].ox = act->spr.pos.X; + po[numplayersprites].opos.X = act->spr.pos.X; po[numplayersprites].oy = act->spr.pos.Y; po[numplayersprites].oz = act->spr.pos.Z; po[numplayersprites].oa = act->spr.ang; diff --git a/source/games/duke/src/savegame.cpp b/source/games/duke/src/savegame.cpp index 1afe87e98..424c25b0d 100644 --- a/source/games/duke/src/savegame.cpp +++ b/source/games/duke/src/savegame.cpp @@ -93,7 +93,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, player_orig& w, pl { if (arc.BeginObject(keyname)) { - arc("ox", w.ox) + arc("ox", w.opos.X) ("oy", w.oy) ("oz", w.oz) ("oa", w.oa) diff --git a/source/games/duke/src/types.h b/source/games/duke/src/types.h index 0e6e5014a..8f3f3b5af 100644 --- a/source/games/duke/src/types.h +++ b/source/games/duke/src/types.h @@ -156,7 +156,8 @@ struct user_defs struct player_orig { - int ox, oy, oz; + vec3_t opos; + int oy, oz; short oa; sectortype* os; };