mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 17:01:51 +00:00
SDK/Samples: Add "startpos.m32", a helper script for spawn points.
You can: -Cycle your position through all DM or coop spawn points. -Jump to the primary spawn point. -Dump full spawn point information to the log file. git-svn-id: https://svn.eduke32.com/eduke32@4245 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
8fa00afb7c
commit
9a87e25d61
1 changed files with 278 additions and 0 deletions
278
polymer/eduke32/package/sdk/samples/startpos.m32
Normal file
278
polymer/eduke32/package/sdk/samples/startpos.m32
Normal file
|
@ -0,0 +1,278 @@
|
|||
/*
|
||||
To begin, type in the console:
|
||||
|
||||
include startpos
|
||||
|
||||
If none of keystrokes work, try:
|
||||
|
||||
enableevent all
|
||||
|
||||
Keystrokes:
|
||||
Ctrl-(LShift-)W - Jump to the next (previous) DM spawn point.
|
||||
Ctrl-(LShift-)E - Jump to the next (previous) coop spawn point.
|
||||
Ctrl-1 - Jump to the primary spawn point, keeping the DM/coop "current" indices intact.
|
||||
Ctrl-LShift-1 - Jump to the primary spawn point, resetting the DM/coop "current" indices to zero.
|
||||
Ctrl-Q - Refresh the collected spawn point data. For example, if you move one of the APLAYER sprites.
|
||||
Ctrl-D - Dump the current map's spawn point information to mapster32.log.
|
||||
|
||||
Tip: With pk_quickmapcycling enabled, Ctrl-(LShift-)X loads the next (previous) map in a directory.
|
||||
*/
|
||||
|
||||
include names.h
|
||||
|
||||
definequote 0
|
||||
|
||||
gamearray DM_x 1
|
||||
gamearray DM_y 1
|
||||
gamearray DM_z 1
|
||||
gamearray DM_ang 1
|
||||
gamearray DM_sectnum 1
|
||||
|
||||
gamearray coop_x 1
|
||||
gamearray coop_y 1
|
||||
gamearray coop_z 1
|
||||
gamearray coop_ang 1
|
||||
gamearray coop_sectnum 1
|
||||
|
||||
gamevar DM 0 0
|
||||
gamevar coop 0 0
|
||||
|
||||
gamevar DM_size 0 0
|
||||
gamevar coop_size 0 0
|
||||
|
||||
gamevar i 0 0
|
||||
gamevar j 0 0
|
||||
gamevar k 0 0
|
||||
|
||||
gamevar startpos_fresh 0 0
|
||||
|
||||
defstate startpos_indexcheck
|
||||
ifg DM DM_size
|
||||
set DM 0
|
||||
ifg coop coop_size
|
||||
set coop 0
|
||||
|
||||
ifl DM 0
|
||||
set DM DM_size
|
||||
ifl coop 0
|
||||
set coop DM_size
|
||||
ends
|
||||
|
||||
|
||||
defstate startpos_gatherdata
|
||||
setvar DM_size 0
|
||||
setvar coop_size 0
|
||||
|
||||
for i allsprites, ife .picnum APLAYER
|
||||
{
|
||||
ife .lotag 0
|
||||
addvar DM_size 1
|
||||
else ife .lotag 1
|
||||
addvar coop_size 1
|
||||
|
||||
ifvarand .cstat 1
|
||||
xorvar .cstat 1 // necessary to prevent floor HOM if the sprite happens to be blocking
|
||||
}
|
||||
|
||||
ifg DM_size 0
|
||||
{
|
||||
resizearray DM_x DM_size
|
||||
resizearray DM_y DM_size
|
||||
resizearray DM_z DM_size
|
||||
resizearray DM_ang DM_size
|
||||
resizearray DM_sectnum DM_size
|
||||
}
|
||||
|
||||
ifg coop_size 0
|
||||
{
|
||||
resizearray coop_x coop_size
|
||||
resizearray coop_y coop_size
|
||||
resizearray coop_z coop_size
|
||||
resizearray coop_ang coop_size
|
||||
resizearray coop_sectnum coop_size
|
||||
}
|
||||
|
||||
set j 0
|
||||
set k 0
|
||||
|
||||
for i allsprites, ife .picnum APLAYER
|
||||
{
|
||||
ife .lotag 0
|
||||
{
|
||||
set DM_x[j] .x
|
||||
set DM_y[j] .y
|
||||
set DM_z[j] .z
|
||||
set DM_ang[j] .ang
|
||||
set DM_sectnum[j] .sectnum
|
||||
|
||||
addvar j 1
|
||||
}
|
||||
else ife .lotag 1
|
||||
{
|
||||
set coop_x[k] .x
|
||||
set coop_y[k] .y
|
||||
set coop_z[k] .z
|
||||
set coop_ang[k] .ang
|
||||
set coop_sectnum[k] .sectnum
|
||||
|
||||
addvar k 1
|
||||
}
|
||||
}
|
||||
|
||||
set startpos_fresh 1
|
||||
|
||||
state startpos_indexcheck
|
||||
ends
|
||||
|
||||
onevent EVENT_LOADMAP
|
||||
state startpos_gatherdata
|
||||
endevent
|
||||
|
||||
|
||||
defstate startpos_primary
|
||||
set posx startposx
|
||||
set posy startposy
|
||||
set posz startposz
|
||||
set ang startang
|
||||
ends
|
||||
|
||||
|
||||
defstate startpos_prekeys
|
||||
ifeitherctrl
|
||||
{
|
||||
ifhitkey KEY_Q
|
||||
{
|
||||
state startpos_gatherdata
|
||||
|
||||
quote "Spawn position data re-gathered."
|
||||
}
|
||||
|
||||
ifhitkey KEY_1
|
||||
{
|
||||
state startpos_primary
|
||||
updatecursectnum
|
||||
|
||||
ifholdkey KEY_LSHIFT
|
||||
{
|
||||
set DM 0
|
||||
set coop 0
|
||||
}
|
||||
|
||||
quote "Jumping to primary spawn position."
|
||||
}
|
||||
|
||||
ifhitkey KEY_W
|
||||
{
|
||||
ife startpos_fresh 0
|
||||
state startpos_gatherdata
|
||||
|
||||
ifholdkey KEY_LSHIFT
|
||||
subvar DM 1
|
||||
else
|
||||
addvar DM 1
|
||||
|
||||
state startpos_indexcheck
|
||||
|
||||
ife DM 0
|
||||
state startpos_primary
|
||||
else
|
||||
{
|
||||
set j DM
|
||||
subvar j 1
|
||||
|
||||
set posx DM_x[j]
|
||||
set posy DM_y[j]
|
||||
set posz DM_z[j]
|
||||
set ang DM_ang[j]
|
||||
}
|
||||
updatecursectnum
|
||||
|
||||
set j DM
|
||||
addvar j 1
|
||||
set k DM_size
|
||||
addvar k 1
|
||||
qsprintf 0 "Jumping to DM spawn position %d of %d." j k
|
||||
quote 0
|
||||
}
|
||||
|
||||
ifhitkey KEY_E
|
||||
{
|
||||
ife startpos_fresh 0
|
||||
state startpos_gatherdata
|
||||
|
||||
ifholdkey KEY_LSHIFT
|
||||
subvar coop 1
|
||||
else
|
||||
addvar coop 1
|
||||
|
||||
state startpos_indexcheck
|
||||
|
||||
ife coop 0
|
||||
state startpos_primary
|
||||
else
|
||||
{
|
||||
set j coop
|
||||
subvar j 1
|
||||
|
||||
set posx coop_x[j]
|
||||
set posy coop_y[j]
|
||||
set posz coop_z[j]
|
||||
set ang coop_ang[j]
|
||||
}
|
||||
updatecursectnum
|
||||
|
||||
set j coop
|
||||
addvar j 1
|
||||
set k coop_size
|
||||
addvar k 1
|
||||
qsprintf 0 "Jumping to coop spawn position %d of %d." j k
|
||||
quote 0
|
||||
}
|
||||
|
||||
ifhitkey KEY_D
|
||||
{
|
||||
ife startpos_fresh 0
|
||||
state startpos_gatherdata
|
||||
|
||||
ife startpos_fresh 1
|
||||
{
|
||||
quote "Dumping spawn point information..."
|
||||
print "Format: Type,x,y,z,ang,sectnum"
|
||||
|
||||
qsprintf 0 "Primary,%d,%d,%d,%d,%d" startposx startposy startposz startang startsectnum
|
||||
print 0
|
||||
|
||||
for i range DM_size
|
||||
{
|
||||
qsprintf 0 "DM,%d,%d,%d,%d,%d" DM_x[i] DM_y[i] DM_z[i] DM_ang[i] DM_sectnum[i]
|
||||
print 0
|
||||
}
|
||||
|
||||
for i range coop_size
|
||||
{
|
||||
qsprintf 0 "Coop,%d,%d,%d,%d,%d" coop_x[i] coop_y[i] coop_z[i] coop_ang[i] coop_sectnum[i]
|
||||
print 0
|
||||
}
|
||||
|
||||
set j DM_size
|
||||
addvar j 1
|
||||
set k coop_size
|
||||
addvar k 1
|
||||
qsprintf 0 "Total: %d DM position(s), %d coop position(s)" j k
|
||||
print 0
|
||||
|
||||
set startpos_fresh 2
|
||||
|
||||
quote "Spawn position data dump complete."
|
||||
}
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
onevent EVENT_PREKEYS2D
|
||||
state startpos_prekeys
|
||||
endevent
|
||||
|
||||
onevent EVENT_PREKEYS3D
|
||||
state startpos_prekeys
|
||||
endevent
|
Loading…
Reference in a new issue