mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-26 11:40:44 +00:00
- Automap: Put in framework to interpolate automap player.
This commit is contained in:
parent
2fa2d93084
commit
be12da6bfb
14 changed files with 21 additions and 20 deletions
|
@ -122,7 +122,7 @@ struct GameInterface : ::GameInterface
|
|||
void NewGame(MapRecord *sng, int skill) override;
|
||||
void NextLevel(MapRecord* map, int skill) override;
|
||||
void LevelCompleted(MapRecord* map, int skill) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;
|
||||
void SetTileProps(int til, int surf, int vox, int shade) override;
|
||||
fixed_t playerHorizMin() override { return IntToFixed(-180); }
|
||||
fixed_t playerHorizMax() override { return IntToFixed(120); }
|
||||
|
|
|
@ -489,7 +489,7 @@ static void DrawMap(spritetype* pSprite)
|
|||
setViewport(Hud_Stbar);
|
||||
tm = 1;
|
||||
}
|
||||
DrawOverheadMap(pSprite->x, pSprite->y, pSprite->ang);
|
||||
DrawOverheadMap(pSprite->x, pSprite->y, pSprite->ang, gInterpolate);
|
||||
if (tm)
|
||||
setViewport(hud_size);
|
||||
}
|
||||
|
@ -932,7 +932,7 @@ FString GameInterface::GetCoordString()
|
|||
}
|
||||
|
||||
|
||||
bool GameInterface::DrawAutomapPlayer(int x, int y, int z, int a)
|
||||
bool GameInterface::DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio)
|
||||
{
|
||||
// [MR]: Confirm that this is correct as math doesn't match the variable names.
|
||||
int nCos = z * -bsin(a);
|
||||
|
|
|
@ -544,7 +544,7 @@ void DrawPlayerArrow(int cposx, int cposy, int cang, int pl_x, int pl_y, int zoo
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void DrawOverheadMap(int pl_x, int pl_y, int pl_angle)
|
||||
void DrawOverheadMap(int pl_x, int pl_y, int pl_angle, double const smoothratio)
|
||||
{
|
||||
if (am_followplayer || follow_x == INT_MAX)
|
||||
{
|
||||
|
@ -566,7 +566,7 @@ void DrawOverheadMap(int pl_x, int pl_y, int pl_angle)
|
|||
|
||||
drawredlines(x, y, gZoom, follow_a);
|
||||
drawwhitelines(x, y, gZoom, follow_a);
|
||||
if (!gi->DrawAutomapPlayer(x, y, gZoom, follow_a))
|
||||
if (!gi->DrawAutomapPlayer(x, y, gZoom, follow_a, smoothratio))
|
||||
DrawPlayerArrow(x, y, follow_a, pl_x, pl_y, gZoom, -pl_angle);
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ extern FixedBitArray<MAXSPRITES> show2dsprite;
|
|||
void SerializeAutomap(FSerializer& arc);
|
||||
void ClearAutomap();
|
||||
void MarkSectorSeen(int sect);
|
||||
void DrawOverheadMap(int x, int y, int ang);
|
||||
void DrawOverheadMap(int x, int y, int ang, double const smoothratio);
|
||||
bool AM_Responder(event_t* ev, bool last);
|
||||
void drawlinergb(int32_t x1, int32_t y1, int32_t x2, int32_t y2, PalEntry p);
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ struct GameInterface
|
|||
virtual void NextLevel(MapRecord* map, int skill) {}
|
||||
virtual void NewGame(MapRecord* map, int skill) {}
|
||||
virtual void LevelCompleted(MapRecord* map, int skill) {}
|
||||
virtual bool DrawAutomapPlayer(int x, int y, int z, int a) { return false; }
|
||||
virtual bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) { return false; }
|
||||
virtual void SetTileProps(int tile, int surf, int vox, int shade) {}
|
||||
virtual fixed_t playerHorizMin() { return IntToFixed(-200); }
|
||||
virtual fixed_t playerHorizMax() { return IntToFixed(200); }
|
||||
|
|
|
@ -103,7 +103,7 @@ extern short bShowTowers;
|
|||
|
||||
void GrabMap();
|
||||
void UpdateMap();
|
||||
void DrawMap();
|
||||
void DrawMap(double const smoothratio);
|
||||
|
||||
// random
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ struct GameInterface : ::GameInterface
|
|||
void NewGame(MapRecord *map, int skill) override;
|
||||
void LevelCompleted(MapRecord *map, int skill) override;
|
||||
void NextLevel(MapRecord *map, int skill) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;
|
||||
fixed_t playerHorizMin() override { return IntToFixed(-150); }
|
||||
fixed_t playerHorizMax() override { return IntToFixed(150); }
|
||||
int playerKeyMove() override { return 6; }
|
||||
|
|
|
@ -46,11 +46,11 @@ void UpdateMap()
|
|||
}
|
||||
}
|
||||
|
||||
void DrawMap()
|
||||
void DrawMap(double const smoothratio)
|
||||
{
|
||||
if (!nFreeze && automapMode != am_off)
|
||||
{
|
||||
DrawOverheadMap(initx, inity, inita);
|
||||
DrawOverheadMap(initx, inity, inita, smoothratio);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@ template<typename T> void GetSpriteExtents(T const* const pSprite, int* top, int
|
|||
}
|
||||
}
|
||||
|
||||
bool GameInterface::DrawAutomapPlayer(int x, int y, int z, int a)
|
||||
bool GameInterface::DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio)
|
||||
{
|
||||
// [MR]: Confirm that this is correct as math doesn't match the variable names.
|
||||
int nCos = z * -bsin(a);
|
||||
|
|
|
@ -436,7 +436,7 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
if (nSnakeCam < 0)
|
||||
{
|
||||
DrawWeapons(smoothRatio);
|
||||
DrawMap();
|
||||
DrawMap(smoothRatio);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -445,7 +445,7 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
sprite[enemy].pal = nEnemyPal;
|
||||
}
|
||||
|
||||
DrawMap();
|
||||
DrawMap(smoothRatio);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5391,6 +5391,7 @@ void recordoldspritepos()
|
|||
ac->bposx = ac->s.x;
|
||||
ac->bposy = ac->s.y;
|
||||
ac->bposz = ac->s.z;
|
||||
ac->tempang = ac->s.ang;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ struct GameInterface : public ::GameInterface
|
|||
void NextLevel(MapRecord* map, int skill) override;
|
||||
void NewGame(MapRecord* map, int skill) override;
|
||||
void LevelCompleted(MapRecord* map, int skill) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;
|
||||
int playerKeyMove() override { return 40; }
|
||||
void WarpToCoords(int x, int y, int z, int a, int h) override;
|
||||
void ToggleThirdPerson() override;
|
||||
|
|
|
@ -283,7 +283,7 @@ void drawoverlays(double smoothratio)
|
|||
cposy = pp->oposy;
|
||||
cang = pp->angle.oang.asbuild();
|
||||
}
|
||||
DrawOverheadMap(cposx, cposy, cang);
|
||||
DrawOverheadMap(cposx, cposy, cang, smoothratio);
|
||||
RestoreInterpolations();
|
||||
}
|
||||
}
|
||||
|
@ -394,7 +394,7 @@ ReservedSpace GameInterface::GetReservedScreenSpace(int viewsize)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang)
|
||||
bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang, double const smoothratio)
|
||||
{
|
||||
int i, j, k, l, x1, y1, x2, y2, x3, y3, x4, y4, ox, oy, xoff, yoff;
|
||||
int dax, day, cosang, sinang, xspan, yspan, sprx, spry;
|
||||
|
|
|
@ -1812,7 +1812,7 @@ drawscreen(PLAYERp pp, double smoothratio)
|
|||
}
|
||||
}
|
||||
}
|
||||
DrawOverheadMap(tx, ty, tang.asbuild());
|
||||
DrawOverheadMap(tx, ty, tang.asbuild(), smoothratio);
|
||||
}
|
||||
|
||||
for (j = 0; j < MAXSPRITES; j++)
|
||||
|
@ -1873,7 +1873,7 @@ bool GameInterface::GenerateSavePic()
|
|||
|
||||
|
||||
|
||||
bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang)
|
||||
bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang, double const smoothratio)
|
||||
{
|
||||
int i, j, k, l, x1, y1, x2, y2, x3, y3, x4, y4, ox, oy, xoff, yoff;
|
||||
int dax, day, cosang, sinang, xspan, yspan, sprx, spry;
|
||||
|
|
|
@ -2252,7 +2252,7 @@ struct GameInterface : ::GameInterface
|
|||
void LevelCompleted(MapRecord *map, int skill) override;
|
||||
void NextLevel(MapRecord *map, int skill) override;
|
||||
void NewGame(MapRecord *map, int skill) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a) override;
|
||||
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;
|
||||
int playerKeyMove() override { return 35; }
|
||||
void WarpToCoords(int x, int y, int z, int a, int h) override;
|
||||
void ToggleThirdPerson() override;
|
||||
|
|
Loading…
Reference in a new issue