mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-24 02:30:46 +00:00
Lunatic: actor. (Needs SAMESIZE_ACTOR_T, which is not yet enabled)
git-svn-id: https://svn.eduke32.com/eduke32@2193 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
f12bd9f13d
commit
b72972e43b
3 changed files with 38 additions and 0 deletions
|
@ -59,6 +59,28 @@ typedef struct {
|
|||
#pragma pack(pop)
|
||||
]]
|
||||
|
||||
-- game structs
|
||||
ffi.cdef[[
|
||||
#pragma pack(push,1)
|
||||
// ACTOR_T, might still need to make some fields read-only
|
||||
typedef struct
|
||||
{
|
||||
const int32_t t_data[10]; // 40b sometimes used to hold offsets to con code
|
||||
int16_t picnum,ang,extra,owner; //8b
|
||||
int16_t movflag,tempang,timetosleep; //6b
|
||||
|
||||
int32_t flags, bposx,bposy,bposz; //16b
|
||||
int32_t floorz,ceilingz,lastvx,lastvy; //16b
|
||||
int32_t lasttransport; //4b
|
||||
|
||||
const int16_t lightId, lightcount, lightmaxrange, cgg; //8b
|
||||
int16_t actorstayput, dispicnum, shootzvel; // 6b
|
||||
|
||||
const int8_t _do_not_use[24];
|
||||
} actor_t;
|
||||
#pragma pack(pop)
|
||||
]]
|
||||
|
||||
ffi.cdef[[
|
||||
sectortype *sector;
|
||||
walltype *wall;
|
||||
|
@ -72,6 +94,10 @@ const int16_t prevspritesect[16384], prevspritestat[16384];
|
|||
const int16_t nextspritesect[16384], nextspritestat[16384];
|
||||
]]
|
||||
|
||||
ffi.cdef[[
|
||||
actor_t actor[16384];
|
||||
]]
|
||||
|
||||
---- _G tweaks -- pull in only 'safe' stuff ----
|
||||
|
||||
local G_ = {} -- our soon-to-be global environment
|
||||
|
@ -147,6 +173,8 @@ gv = {
|
|||
headspritesect = det, headspritestat = det,
|
||||
prevspritesect = det, prevspritestat = det,
|
||||
nextspritesect = det, nextspritestat = det,
|
||||
|
||||
actor = det,
|
||||
}
|
||||
local tmpmt = {
|
||||
__index = ffiC,
|
||||
|
@ -208,6 +236,8 @@ nextspritestat = creategtab(ffiC.nextspritestat, 16384, 'nextspritestat[]')
|
|||
prevspritesect = creategtab(ffiC.prevspritesect, 16384, 'prevspritesect[]')
|
||||
prevspritestat = creategtab(ffiC.prevspritestat, 16384, 'prevspritestat[]')
|
||||
|
||||
actor = creategtab(ffiC.actor, 16384, 'actor[]')
|
||||
|
||||
---- per-sector/per-statnum sprite iterators ----
|
||||
local function iter_spritesofsect(sect, i)
|
||||
if (i < 0) then
|
||||
|
@ -255,6 +285,9 @@ G_.nextspritesect = nextspritesect
|
|||
G_.nextspritestat = nextspritestat
|
||||
G_.prevspritesect = prevspritesect
|
||||
G_.prevspritestat = prevspritestat
|
||||
|
||||
G_.actor = actor
|
||||
|
||||
G_.spritesofsect = spritesofsect
|
||||
G_.spritesofstat = spritesofstat
|
||||
|
||||
|
|
|
@ -13,4 +13,6 @@ prevspritesect;
|
|||
prevspritestat;
|
||||
nextspritesect;
|
||||
nextspritestat;
|
||||
|
||||
actor;
|
||||
};
|
||||
|
|
|
@ -34,6 +34,9 @@ end
|
|||
for spr in spritesofsect(236) do
|
||||
print('#spr', spr)
|
||||
end
|
||||
|
||||
actor[562].flags = bit.bor(actor[562].flags, 2); -- pal 6 with goggles on front SEENINE
|
||||
|
||||
--]]
|
||||
print('_G contains:')
|
||||
for k,v in pairs(_G) do
|
||||
|
|
Loading…
Reference in a new issue