mirror of
https://github.com/ZDoom/Raze.git
synced 2024-12-21 01:40:51 +00:00
9a87e25d61
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
278 lines
6.3 KiB
Text
278 lines
6.3 KiB
Text
/*
|
|
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
|