diff --git a/src/d_main.cpp b/src/d_main.cpp index b26d29575..e86db958f 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -901,7 +901,10 @@ void D_DoomLoop () // Clamp the timer to TICRATE until the playloop has been entered. r_NoInterpolate = true; - I_SetCursor(TexMan["cursor"]); + if (gameinfo.CursorPic.IsEmpty() || !I_SetCursor(TexMan[gameinfo.CursorPic])) + { + I_SetCursor(TexMan["cursor"]); + } for (;;) { diff --git a/src/gi.cpp b/src/gi.cpp index 4cd1284c9..712638ace 100644 --- a/src/gi.cpp +++ b/src/gi.cpp @@ -274,6 +274,7 @@ void FMapInfoParser::ParseGameInfo() GAMEINFOKEY_STRING(backpacktype, "backpacktype") GAMEINFOKEY_STRING(statusbar, "statusbar") GAMEINFOKEY_STRING(intermissionMusic, "intermissionMusic") + GAMEINFOKEY_STRING(CursorPic, "CursorPic") GAMEINFOKEY_BOOL(noloopfinalemusic, "noloopfinalemusic") GAMEINFOKEY_BOOL(drawreadthis, "drawreadthis") GAMEINFOKEY_BOOL(intermissioncounter, "intermissioncounter") diff --git a/src/gi.h b/src/gi.h index 483b4a1b0..cb26a058d 100644 --- a/src/gi.h +++ b/src/gi.h @@ -106,6 +106,7 @@ struct gameinfo_t FString backpacktype; FString statusbar; FString intermissionMusic; + FString CursorPic; DWORD dimcolor; float dimamount; int definventorymaxamount; diff --git a/wadsrc/static/mapinfo/doomcommon.txt b/wadsrc/static/mapinfo/doomcommon.txt index a4d12b7c7..393dbc2ea 100644 --- a/wadsrc/static/mapinfo/doomcommon.txt +++ b/wadsrc/static/mapinfo/doomcommon.txt @@ -55,6 +55,7 @@ gameinfo playerclasses = "DoomPlayer" pausesign = "M_PAUSE" gibfactor = 1 + cursorpic = "doomcurs" } skill baby diff --git a/wadsrc/static/mapinfo/heretic.txt b/wadsrc/static/mapinfo/heretic.txt index 1596f45d8..17cd942f2 100644 --- a/wadsrc/static/mapinfo/heretic.txt +++ b/wadsrc/static/mapinfo/heretic.txt @@ -55,6 +55,7 @@ gameinfo nightmarefast = true pausesign = "PAUSED" gibfactor = 0.5 + cursorpic = "herecurs" } skill baby diff --git a/wadsrc/static/mapinfo/hexen.txt b/wadsrc/static/mapinfo/hexen.txt index af6528699..29dddd8d7 100644 --- a/wadsrc/static/mapinfo/hexen.txt +++ b/wadsrc/static/mapinfo/hexen.txt @@ -53,6 +53,7 @@ gameinfo nightmarefast = true pausesign = "PAUSED" gibfactor = 0.5 + cursorpic = "hexncurs" } skill baby diff --git a/wadsrc/static/mapinfo/strife.txt b/wadsrc/static/mapinfo/strife.txt index 8595c56c9..e65b7a9a7 100644 --- a/wadsrc/static/mapinfo/strife.txt +++ b/wadsrc/static/mapinfo/strife.txt @@ -55,6 +55,7 @@ gameinfo PlayerClasses = "StrifePlayer" pausesign = "PAUSED" gibfactor = 0.5 + cursorpic = "strfcurs" } skill baby