mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 17:32:13 +00:00
279 lines
6.3 KiB
Text
279 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
|