mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
- added the animated player display.
This commit is contained in:
parent
98d3cb19c9
commit
54177cd27d
10 changed files with 59 additions and 26 deletions
|
@ -236,6 +236,7 @@ struct GameInterface
|
||||||
f.VFormat(fmt, ap);
|
f.VFormat(fmt, ap);
|
||||||
DoPrintMessage(prio, f);
|
DoPrintMessage(prio, f);
|
||||||
}
|
}
|
||||||
|
virtual void DrawPlayerSprite(const DVector2& origin, bool onteam) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern GameInterface* gi;
|
extern GameInterface* gi;
|
||||||
|
|
|
@ -571,7 +571,7 @@ CUSTOM_CVAR(Int, playerteam, 0, CVAR_USERINFO) // this one is transient and won'
|
||||||
else ;// gi->UpdatePlayerTeam(); // this part is game specific
|
else ;// gi->UpdatePlayerTeam(); // this part is game specific
|
||||||
}
|
}
|
||||||
|
|
||||||
// Will only become useful if the obituary system gets overhauled.
|
// Will only become useful if the obituary system gets overhauled and for localization
|
||||||
CUSTOM_CVAR(Int, playergender, 0, CVAR_USERINFO|CVAR_ARCHIVE)
|
CUSTOM_CVAR(Int, playergender, 0, CVAR_USERINFO|CVAR_ARCHIVE)
|
||||||
{
|
{
|
||||||
if (self < 0 || self > 3) self = 0;
|
if (self < 0 || self > 3) self = 0;
|
||||||
|
|
|
@ -57,6 +57,7 @@ void RegisterRedneckMenus();
|
||||||
void RegisterBloodMenus();
|
void RegisterBloodMenus();
|
||||||
void RegisterSWMenus();
|
void RegisterSWMenus();
|
||||||
void RegisterLoadsaveMenus();
|
void RegisterLoadsaveMenus();
|
||||||
|
void RegisterOptionMenus();
|
||||||
extern bool rotatesprite_2doverride;
|
extern bool rotatesprite_2doverride;
|
||||||
bool help_disabled, credits_disabled;
|
bool help_disabled, credits_disabled;
|
||||||
int g_currentMenu; // accessible by CON scripts - contains the current menu's script ID if defined or INT_MAX if none given.
|
int g_currentMenu; // accessible by CON scripts - contains the current menu's script ID if defined or INT_MAX if none given.
|
||||||
|
@ -546,10 +547,23 @@ bool M_SetMenu(FName menu, int param, FName caller)
|
||||||
else if ((*desc)->mType == MDESC_OptionsMenu)
|
else if ((*desc)->mType == MDESC_OptionsMenu)
|
||||||
{
|
{
|
||||||
FOptionMenuDescriptor *ld = static_cast<FOptionMenuDescriptor*>(*desc);
|
FOptionMenuDescriptor *ld = static_cast<FOptionMenuDescriptor*>(*desc);
|
||||||
//const PClass *cls = ld->mClass == NULL? RUNTIME_CLASS(DOptionMenu) : ld->mClass;
|
DOptionMenu* newmenu;
|
||||||
|
if (ld->mClass != NAME_None)
|
||||||
ld->CalcIndent();
|
{
|
||||||
DOptionMenu *newmenu = new DOptionMenu;
|
auto ndx = menuClasses.FindEx([=](const auto p) { return p->mName == ld->mClass; });
|
||||||
|
if (ndx == menuClasses.Size())
|
||||||
|
{
|
||||||
|
I_Error("Bad menu class %s\n", ld->mClass.GetChars());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newmenu = (DOptionMenu*)menuClasses[ndx]->CreateNew();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newmenu = new DOptionMenu;
|
||||||
|
}
|
||||||
newmenu->Init(DMenu::CurrentMenu, ld);
|
newmenu->Init(DMenu::CurrentMenu, ld);
|
||||||
M_ActivateMenu(newmenu);
|
M_ActivateMenu(newmenu);
|
||||||
}
|
}
|
||||||
|
@ -922,6 +936,7 @@ void M_Init (void)
|
||||||
RegisterBloodMenus();
|
RegisterBloodMenus();
|
||||||
RegisterSWMenus();
|
RegisterSWMenus();
|
||||||
RegisterLoadsaveMenus();
|
RegisterLoadsaveMenus();
|
||||||
|
RegisterOptionMenus();
|
||||||
timerSetCallback(M_Ticker);
|
timerSetCallback(M_Ticker);
|
||||||
M_ParseMenuDefs();
|
M_ParseMenuDefs();
|
||||||
}
|
}
|
||||||
|
|
|
@ -539,3 +539,23 @@ FOptionMenuItem *FOptionMenuDescriptor::GetItem(FName name)
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class PlayerMenu : public DOptionMenu
|
||||||
|
{
|
||||||
|
using Super = DOptionMenu;
|
||||||
|
|
||||||
|
public:
|
||||||
|
void Drawer()
|
||||||
|
{
|
||||||
|
// Hack: The team item is #3. This part doesn't work properly yet.
|
||||||
|
gi->DrawPlayerSprite(origin, (mDesc->mSelectedItem == 3));
|
||||||
|
Super::Drawer();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static TMenuClassDescriptor<PlayerMenu> _ppm("NewPlayerMenu");
|
||||||
|
|
||||||
|
void RegisterOptionMenus()
|
||||||
|
{
|
||||||
|
menuClasses.Push(&_ppm);
|
||||||
|
}
|
||||||
|
|
|
@ -757,12 +757,10 @@ void GameInterface::DrawCenteredTextScreen(const DVector2 &origin, const char *t
|
||||||
mgametextcenter(int(origin.X * 65536), int((origin.Y + position) * 65536), text);
|
mgametextcenter(int(origin.X * 65536), int((origin.Y + position) * 65536), text);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
void GameInterface::DrawPlayerSprite(const DVector2& origin, bool onteam)
|
||||||
void GameInterface::DrawPlayerSprite(int x, int y)
|
|
||||||
{
|
{
|
||||||
rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(playerteam) : playercolor,10);
|
rotatesprite_fs(int(origin.X * 65536) + (260<<16), int(origin.Y*65536) + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,onteam ? G_GetTeamPalette(playerteam) : G_CheckPlayerColor(playercolor),10);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
||||||
|
|
|
@ -169,6 +169,7 @@ struct GameInterface : ::GameInterface
|
||||||
bool SaveGame(FSaveGameNode*) override;
|
bool SaveGame(FSaveGameNode*) override;
|
||||||
bool LoadGame(FSaveGameNode*) override;
|
bool LoadGame(FSaveGameNode*) override;
|
||||||
void DoPrintMessage(int prio, const char*) override;
|
void DoPrintMessage(int prio, const char*) override;
|
||||||
|
void DrawPlayerSprite(const DVector2& origin, bool onteam) override;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -475,15 +475,13 @@ void GameInterface::DrawCenteredTextScreen(const DVector2 &origin, const char *t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
void GameInterface::DrawPlayerSprite(const DVector2& origin, bool onteam)
|
||||||
void GameInterface::DrawPlayerSprite(int x, int y)
|
|
||||||
{
|
{
|
||||||
if (RR)
|
if (RR)
|
||||||
rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>2))<<16), 24576L,0,3845+36-((((8-((int32_t) totalclock>>4)))&7)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(playerteam) : playercolor,10);
|
rotatesprite_fs(int(origin.X * 65536) + (260<<16), int(origin.Y * 65536) + ((24+(tilesiz[APLAYER].y>>2))<<16), 24576L,0,3845+36-((((8-((int32_t) totalclock>>4)))&7)*5),0,onteam ? G_GetTeamPalette(playerteam) : G_CheckPlayerColor(playercolor),10);
|
||||||
else
|
else
|
||||||
rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(playerteam) : playercolor,10);
|
rotatesprite_fs(int(origin.X * 65536) + (260<<16), int(origin.Y * 65536) + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,onteam ? G_GetTeamPalette(playerteam) : G_CheckPlayerColor(playercolor),10);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
END_RR_NS
|
END_RR_NS
|
||||||
|
|
|
@ -169,6 +169,7 @@ struct GameInterface : ::GameInterface
|
||||||
bool SaveGame(FSaveGameNode*) override;
|
bool SaveGame(FSaveGameNode*) override;
|
||||||
bool LoadGame(FSaveGameNode*) override;
|
bool LoadGame(FSaveGameNode*) override;
|
||||||
void DoPrintMessage(int prio, const char* text) override;
|
void DoPrintMessage(int prio, const char* text) override;
|
||||||
|
void DrawPlayerSprite(const DVector2& origin, bool onteam) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
END_RR_NS
|
END_RR_NS
|
||||||
|
|
|
@ -307,7 +307,7 @@ void fadepal(int32_t r,int32_t g,int32_t b,int32_t start,int32_t end,int32_t ste
|
||||||
//void fadepaltile(int32_t r,int32_t g,int32_t b,int32_t start,int32_t end,int32_t step,int32_t tile);
|
//void fadepaltile(int32_t r,int32_t g,int32_t b,int32_t start,int32_t end,int32_t step,int32_t tile);
|
||||||
void G_InitTimer(int32_t ticspersec);
|
void G_InitTimer(int32_t ticspersec);
|
||||||
|
|
||||||
static inline int32_t G_GetTeamPalette(int32_t team)
|
inline int32_t G_GetTeamPalette(int32_t team)
|
||||||
{
|
{
|
||||||
int8_t pal[] = { 3, 10, 11, 12 };
|
int8_t pal[] = { 3, 10, 11, 12 };
|
||||||
|
|
||||||
|
|
|
@ -965,15 +965,15 @@ OptionValue "PlayerColors"
|
||||||
{
|
{
|
||||||
0, "$OPTVAL_AUTO"
|
0, "$OPTVAL_AUTO"
|
||||||
1, "$TXT_COLOR_BLUE"
|
1, "$TXT_COLOR_BLUE"
|
||||||
2, "TXT_COLOR_RED"
|
2, "$TXT_COLOR_RED"
|
||||||
3, "TXT_COLOR_GREEN"
|
3, "$TXT_COLOR_GREEN"
|
||||||
4, "TXT_COLOR_GRAY"
|
4, "$TXT_COLOR_GRAY"
|
||||||
5, "TXT_COLOR_DARKGRAY"
|
5, "$TXT_COLOR_DARKGRAY"
|
||||||
6, "TXT_COLOR_DARKGREEN"
|
6, "$TXT_COLOR_DARKGREEN"
|
||||||
7, "TXT_COLOR_BROWN"
|
7, "$TXT_COLOR_BROWN"
|
||||||
8, "TXT_COLOR_DARKBLUE"
|
8, "$TXT_COLOR_DARKBLUE"
|
||||||
9, "TXT_COLOR_LIGHTRED"
|
9, "$TXT_COLOR_LIGHTRED"
|
||||||
10, "TXT_COLOR_YELLOW"
|
//10, "TXT_COLOR_YELLOW"
|
||||||
}
|
}
|
||||||
|
|
||||||
OptionValue "PlayerTeam"
|
OptionValue "PlayerTeam"
|
||||||
|
@ -997,9 +997,9 @@ OptionMenu "NewPlayerMenu" //protected
|
||||||
{
|
{
|
||||||
Title "$MNU_PLAYERSETUP"
|
Title "$MNU_PLAYERSETUP"
|
||||||
TextField "$PLYRMNU_NAME", playername
|
TextField "$PLYRMNU_NAME", playername
|
||||||
Option "$PLYRMNU_TEAM", "playerteam", "PlayerTeam"
|
|
||||||
Option "$PLYRMNU_PLAYERCOLOR", "playercolor", "PlayerColors"
|
Option "$PLYRMNU_PLAYERCOLOR", "playercolor", "PlayerColors"
|
||||||
Option "$PLYRMNU_PLAYERGENDER", "playergender", "Gender"
|
Option "$PLYRMNU_PLAYERGENDER", "playergender", "Gender"
|
||||||
|
Option "$PLYRMNU_TEAM", "playerteam", "PlayerTeam"
|
||||||
Submenu "$PLRMNU_TAUNTS", "TauntsMenu"
|
Submenu "$PLRMNU_TAUNTS", "TauntsMenu"
|
||||||
Class "NewPlayerMenu"
|
Class "NewPlayerMenu"
|
||||||
}
|
}
|
||||||
|
@ -1048,7 +1048,6 @@ OptionValue "WeapSwitch"
|
||||||
|
|
||||||
OptionMenu GameplayOptions //protected
|
OptionMenu GameplayOptions //protected
|
||||||
{
|
{
|
||||||
Position -35
|
|
||||||
Title "$GMPLYMNU_TITLE"
|
Title "$GMPLYMNU_TITLE"
|
||||||
Option "$PLRMNU_AUTOAIM", "cl_autoaim", "AimMode"
|
Option "$PLRMNU_AUTOAIM", "cl_autoaim", "AimMode"
|
||||||
Option "$PLRMNU_ALWAYSRUN", "cl_autorun", "OnOff"
|
Option "$PLRMNU_ALWAYSRUN", "cl_autorun", "OnOff"
|
||||||
|
|
Loading…
Reference in a new issue