mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
LunaCON: implement 'clearmapstate', fix 'resetplayerflags' parsing.
git-svn-id: https://svn.eduke32.com/eduke32@5231 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
c6f0c467e3
commit
fd94930f14
6 changed files with 36 additions and 6 deletions
|
@ -94,6 +94,12 @@ function bcheck.level_idx(level)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function bcheck.linear_map_idx(idx)
|
||||||
|
if (not (idx >= 0 and idx <= con_lang.MAXLEVELS * con_lang.MAXVOLUMES)) then
|
||||||
|
error("invalid linear map index "..idx, 3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function bcheck.quote_idx(qnum, onlyidx)
|
function bcheck.quote_idx(qnum, onlyidx)
|
||||||
if (not (qnum >= 0 and qnum < con_lang.MAXQUOTES)) then
|
if (not (qnum >= 0 and qnum < con_lang.MAXQUOTES)) then
|
||||||
error("invalid quote number "..qnum, 3)
|
error("invalid quote number "..qnum, 3)
|
||||||
|
|
|
@ -1946,6 +1946,11 @@ function _loadmapstate()
|
||||||
ffiC.G_RestoreMapState()
|
ffiC.G_RestoreMapState()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function _clearmapstate(idx)
|
||||||
|
bcheck.linear_map_idx(idx)
|
||||||
|
ffiC.G_FreeMapState(idx)
|
||||||
|
end
|
||||||
|
|
||||||
-- Gamevar persistence in the configuration file
|
-- Gamevar persistence in the configuration file
|
||||||
|
|
||||||
function _savegamevar(name, val)
|
function _savegamevar(name, val)
|
||||||
|
|
|
@ -728,6 +728,7 @@ const char* G_PrintBestTime(void);
|
||||||
void G_UpdateScreenArea(void);
|
void G_UpdateScreenArea(void);
|
||||||
void G_SaveMapState(void);
|
void G_SaveMapState(void);
|
||||||
void G_RestoreMapState(void);
|
void G_RestoreMapState(void);
|
||||||
|
void G_FreeMapState(int32_t mapnum);
|
||||||
]]
|
]]
|
||||||
|
|
||||||
decl[[
|
decl[[
|
||||||
|
|
|
@ -249,4 +249,5 @@ G_PrintBestTime;
|
||||||
G_UpdateScreenArea;
|
G_UpdateScreenArea;
|
||||||
G_SaveMapState;
|
G_SaveMapState;
|
||||||
G_RestoreMapState;
|
G_RestoreMapState;
|
||||||
|
G_FreeMapState;
|
||||||
};
|
};
|
||||||
|
|
|
@ -2727,7 +2727,7 @@ local Cinner = {
|
||||||
/ ACS":reset_acount()",
|
/ ACS":reset_acount()",
|
||||||
resetcount = cmd()
|
resetcount = cmd()
|
||||||
/ ACS":set_count(0)",
|
/ ACS":set_count(0)",
|
||||||
resetplayer = cmd() -- NLCF
|
resetplayer = cmd() * #sp1 -- NLCF
|
||||||
/ "if (_con._VM_ResetPlayer2(_pli,0)) then _con.longjmp() end",
|
/ "if (_con._VM_ResetPlayer2(_pli,0)) then _con.longjmp() end",
|
||||||
resetplayerflags = cmd(R) -- NLCF
|
resetplayerflags = cmd(R) -- NLCF
|
||||||
/ "if (_con._VM_ResetPlayer2(_pli,%1)) then _con.longjmp() end",
|
/ "if (_con._VM_ResetPlayer2(_pli,%1)) then _con.longjmp() end",
|
||||||
|
@ -2818,7 +2818,7 @@ local Cinner = {
|
||||||
|
|
||||||
-- Persistence
|
-- Persistence
|
||||||
clearmapstate = cmd(R)
|
clearmapstate = cmd(R)
|
||||||
/ handle.NYI,
|
/ "_con._clearmapstate(%1)",
|
||||||
loadmapstate = cmd()
|
loadmapstate = cmd()
|
||||||
/ "_con._loadmapstate()",
|
/ "_con._loadmapstate()",
|
||||||
savemapstate = cmd()
|
savemapstate = cmd()
|
||||||
|
|
|
@ -3,9 +3,10 @@
|
||||||
// To warp to a particular map, press the steroids key.
|
// To warp to a particular map, press the steroids key.
|
||||||
// Volume: player angle / 512, displayed on screen.
|
// Volume: player angle / 512, displayed on screen.
|
||||||
// Level: current weapon.
|
// Level: current weapon.
|
||||||
|
// Clear mapstate: press [QuickKick]
|
||||||
|
|
||||||
define Q 400
|
define Q_tmp 400
|
||||||
definequote Q ====== TEMP =======
|
definequote Q_tmp ====== TEMP =======
|
||||||
|
|
||||||
definequote 401 WILL WARP TO VOLUME %d
|
definequote 401 WILL WARP TO VOLUME %d
|
||||||
|
|
||||||
|
@ -24,6 +25,9 @@ definequote 412 <dest>
|
||||||
definequote 413 <dest>
|
definequote 413 <dest>
|
||||||
definequote 414 <dest>
|
definequote 414 <dest>
|
||||||
|
|
||||||
|
define Q_cms 500
|
||||||
|
definequote Q_cms Cleared mapstate for volume %d level %d
|
||||||
|
|
||||||
// Test gamevar flags GAMEVAR_NODEFAULT and GAMEVAR_NORESET.
|
// Test gamevar flags GAMEVAR_NODEFAULT and GAMEVAR_NORESET.
|
||||||
// Global.
|
// Global.
|
||||||
define GV_NODEFAULT 1024
|
define GV_NODEFAULT 1024
|
||||||
|
@ -73,8 +77,8 @@ ends
|
||||||
|
|
||||||
onevent EVENT_DISPLAYREST
|
onevent EVENT_DISPLAYREST
|
||||||
state calcvolume
|
state calcvolume
|
||||||
qsprintf Q /*<-*/ 401 /**/ gs
|
qsprintf Q_tmp /*<-*/ 401 /**/ gs
|
||||||
gametext STARTALPHANUM 20 20 Q 0 0 0 0 0 xdim ydim
|
gametext STARTALPHANUM 20 20 Q_tmp 0 0 0 0 0 xdim ydim
|
||||||
|
|
||||||
setvar y 40
|
setvar y 40
|
||||||
setvar dq 403
|
setvar dq 403
|
||||||
|
@ -148,6 +152,19 @@ onevent EVENT_USESTEROIDS
|
||||||
startlevel gs currentweapon
|
startlevel gs currentweapon
|
||||||
endevent
|
endevent
|
||||||
|
|
||||||
|
onevent EVENT_QUICKKICK
|
||||||
|
state calcvolume
|
||||||
|
|
||||||
|
qsprintf Q_tmp Q_cms gs currentweapon
|
||||||
|
userquote Q_tmp
|
||||||
|
|
||||||
|
// Calc linear map index.
|
||||||
|
mulvar gs 64 // MAXLEVELS (XXX: should be exposed via CON)
|
||||||
|
addvarvar gs currentweapon
|
||||||
|
|
||||||
|
clearmapstate gs
|
||||||
|
endevent
|
||||||
|
|
||||||
onevent EVENT_ENTERLEVEL
|
onevent EVENT_ENTERLEVEL
|
||||||
loadmapstate
|
loadmapstate
|
||||||
endevent
|
endevent
|
||||||
|
|
Loading…
Reference in a new issue