mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-16 01:11:28 +00:00
LunaCON: hook up qstrdim and screentext.
Also add some recent keywords to the list in con_lang.lua which I had forgotten all along. git-svn-id: https://svn.eduke32.com/eduke32@3845 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
75313a78c8
commit
7fcb577f51
4 changed files with 60 additions and 4 deletions
|
@ -947,6 +947,7 @@ lpeg.P(false) +
|
|||
"shoot" +
|
||||
"shiftvarr" +
|
||||
"shiftvarl" +
|
||||
"shadeto" +
|
||||
"setwall" +
|
||||
"setvarvar" +
|
||||
"setvar" +
|
||||
|
@ -976,6 +977,7 @@ lpeg.P(false) +
|
|||
"sectgethitag" +
|
||||
"sectclearinterpolation" +
|
||||
"scriptsize" +
|
||||
"screentext" +
|
||||
"savenn" +
|
||||
"savemapstate" +
|
||||
"savegamevar" +
|
||||
|
@ -1001,6 +1003,7 @@ lpeg.P(false) +
|
|||
"qsubstr" +
|
||||
"qstrncat" +
|
||||
"qstrlen" +
|
||||
"qstrdim" +
|
||||
"qstrcpy" +
|
||||
"qstrcat" +
|
||||
"qsprintf" +
|
||||
|
@ -1078,6 +1081,7 @@ lpeg.P(false) +
|
|||
"ifserver" +
|
||||
"ifrnd" +
|
||||
"ifrespawn" +
|
||||
"ifplayersl" +
|
||||
"ifpinventory" +
|
||||
"ifphealthl" +
|
||||
"ifpdistl" +
|
||||
|
@ -1184,11 +1188,13 @@ lpeg.P(false) +
|
|||
"enhanced" +
|
||||
"endswitch" +
|
||||
"ends" +
|
||||
"endoflevel" +
|
||||
"endofgame" +
|
||||
"endevent" +
|
||||
"enda" +
|
||||
"else" +
|
||||
"echo" +
|
||||
"dynamicsoundremap" +
|
||||
"dynamicremap" +
|
||||
"dragpoint" +
|
||||
"divvarvar" +
|
||||
|
@ -1254,5 +1260,6 @@ lpeg.P(false) +
|
|||
"actor" +
|
||||
"activatecheat" +
|
||||
"activatebysector" +
|
||||
"activate" +
|
||||
"action" +
|
||||
lpeg.P(false)
|
||||
|
|
|
@ -792,15 +792,19 @@ function _digitalnumber(tilenum, x, y, num, shade, pal,
|
|||
orientation, cx1, cy1, cx2, cy2, zoom)
|
||||
end
|
||||
|
||||
function _gametext(tilenum, x, y, qnum, shade, pal, orientation,
|
||||
cx1, cy1, cx2, cy2, zoom)
|
||||
local function text_check_common(tilenum, orientation)
|
||||
if (tilenum >= ffiC.MAXTILES-255+0ULL) then
|
||||
error("invalid base tile number "..tilenum, 2)
|
||||
error("invalid base tile number "..tilenum, 3)
|
||||
end
|
||||
|
||||
return bit.band(orientation, 4095) -- ROTATESPRITE_MAX-1
|
||||
end
|
||||
|
||||
function _gametext(tilenum, x, y, qnum, shade, pal, orientation,
|
||||
cx1, cy1, cx2, cy2, zoom)
|
||||
orientation = text_check_common(tilenum, orientation)
|
||||
local cstr = bcheck.quote_idx(qnum)
|
||||
|
||||
orientation = bit.band(orientation, 4095) -- ROTATESPRITE_MAX-1
|
||||
ffiC.G_PrintGameText(0, tilenum, bit.arshift(x,1), y, cstr, shade, pal,
|
||||
orientation, cx1, cy1, cx2, cy2, zoom)
|
||||
end
|
||||
|
@ -810,6 +814,26 @@ end
|
|||
-- x86 when clicking wildly through its menu.
|
||||
jit.off(_gametext)
|
||||
|
||||
function _screentext(tilenum, x, y, z, blockangle, charangle, q, shade, pal, orientation,
|
||||
alpha, xspace, yline, xbetween, ybetween, f, x1, y1, x2, y2)
|
||||
orientation = text_check_common(tilenum, orientation)
|
||||
local cstr = bcheck.quote_idx(q)
|
||||
|
||||
ffiC.G_ScreenText(tilenum, x, y, z, blockangle, charangle, cstr, shade, pal, orientation,
|
||||
alpha, xspace, yline, xbetween, ybetween, f, x1, y1, x2, y2)
|
||||
end
|
||||
|
||||
function _qstrdim(tilenum, x, y, z, blockangle, q, orientation,
|
||||
xspace, yline, xbetween, ybetween, f, x1, y1, x2, y2)
|
||||
orientation = text_check_common(tilenum, orientation)
|
||||
local cstr = bcheck.quote_idx(q)
|
||||
|
||||
local dim = ffiC.G_ScreenTextSize(tilenum, x, y, z, blockangle, cstr, orientation,
|
||||
xspace, yline, xbetween, ybetween, f, x1, y1, x2, y2);
|
||||
return dim.x, dim.y
|
||||
end
|
||||
|
||||
|
||||
local D = {
|
||||
-- TODO: dynamic tile remapping
|
||||
ACTIVATOR = 2,
|
||||
|
|
|
@ -651,6 +651,21 @@ int32_t G_PrintGameText(int32_t f, int32_t tile, int32_t x, int32_t y, const
|
|||
int32_t s, int32_t p, int32_t o,
|
||||
int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t z);
|
||||
|
||||
typedef struct {
|
||||
int32_t x, y;
|
||||
} vec2_t;
|
||||
vec2_t G_ScreenText(const int32_t font,
|
||||
int32_t x, int32_t y, const int32_t z, const int32_t blockangle, const int32_t charangle,
|
||||
const char *str, const int32_t shade, int32_t pal, int32_t o, const int32_t alpha,
|
||||
int32_t xspace, int32_t yline, int32_t xbetween, int32_t ybetween, const int32_t f,
|
||||
const int32_t x1, const int32_t y1, const int32_t x2, const int32_t y2);
|
||||
vec2_t G_ScreenTextSize(const int32_t font,
|
||||
int32_t x, int32_t y, const int32_t z, const int32_t blockangle,
|
||||
const char *str, const int32_t o,
|
||||
int32_t xspace, int32_t yline, int32_t xbetween, int32_t ybetween,
|
||||
const int32_t f,
|
||||
int32_t x1, int32_t y1, int32_t x2, int32_t y2);
|
||||
|
||||
void G_SaveMapState(void);
|
||||
void G_RestoreMapState(void);
|
||||
]]
|
||||
|
|
|
@ -1388,6 +1388,8 @@ local Couter = {
|
|||
--- 2. Defines and Meta-Settings
|
||||
dynamicremap = cmd()
|
||||
/ Cmd.dynamicremap,
|
||||
dynamicsoundremap = cmd()
|
||||
/ Cmd.NYI("`dynamicsoundremap'"),
|
||||
setcfgname = sp1 * tok.filename
|
||||
/ Cmd.nyi("`setcfgname'"),
|
||||
setdefname = sp1 * tok.filename
|
||||
|
@ -2299,6 +2301,14 @@ local Cinner = {
|
|||
/ handle.getzrange,
|
||||
|
||||
-- screen text and numbers display
|
||||
qstrdim = cmd(W,W,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R) -- 2W 16R
|
||||
/ function(...)
|
||||
return format("%s,%s=_con._qstrdim("..n_s_fmt(16)..")", ...)
|
||||
end,
|
||||
screentext = cmd(R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R) -- 20 R
|
||||
/ function(...)
|
||||
return format("_con._screentext("..n_s_fmt(20)..")", ...)
|
||||
end,
|
||||
gametext = cmd(R,R,R,R,R,R,R,R,R,R,R) -- 11 R
|
||||
/ function(...)
|
||||
return format("_con._gametext("..n_s_fmt(11)..",65536)", ...)
|
||||
|
|
Loading…
Reference in a new issue