#module
#deffunc init_getvn
if inited : return
inited = 1
exist "obj"
if strsize < 0 : end
sdim axbuf, strsize
bload "obj", axbuf
max_val = lpeek( axbuf, 8 )
pt_ds = lpeek( axbuf, 24 )
max_ds = lpeek( axbuf, 28 )
pt_dinfo = lpeek( axbuf, 40 )
max_dinfo = lpeek( axbuf, 44 )
dupptr dinfo, varptr( axbuf ) + pt_dinfo, max_dinfo
dupptr ds, varptr( axbuf ) + pt_ds, max_ds
sdim varnames, 64, max_val
varnames_i = 0
repeat max_dinfo
char = peek( dinfo, cnt )
if char == 255 : break
if char == 254 : continue cnt + 1 + 3 + 2
if char == 253 {
ds_offset = lpeek( dinfo, cnt + 1 ) & 0x00ffffff
varnames.varnames_i = strf( "%s", varptr( ds ) + ds_offset )
varnames_i ++
continue cnt + 1 + 3 + 2
}
if char == 252 : continue cnt + 1 + 2
loop
return
#defcfunc getvarname var v
init_getvn
mref hspctx, 68
dupptr pval_ptr, hspctx.207, 4 // prmstack
pval_ptr_first = hspctx.11 // mem_var
// sizeof PVal == 48
return varnames( ( pval_ptr - pval_ptr_first ) / 48 )
#global
mes getvarname ( hoge )