Rev 52 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*
--------------------------------------------------------------------------------
Duke: Nuclear Winter
By Joris Weimar
© 1997 Simply Silly Software
--------------------------------------------------------------------------------
Duke: Nuclear Winter Plus
By Hendricks266
--------------------------------------------------------------------------------
*/
include NWDefs.con
include NWUser.con
setgamename Duke: Nuclear Winter
gamevar nw_picnum 0 2
gamevar nw_temp 0 2
gamevar nw_tempb 0 2
gamevar nw_x 0 2
gamevar nw_y 0 2
gamevar nw_z 0 2
gamevar nw_owner 0 2
gamevar nw_temp2 0 2
gamevar nw_temp3 0 2
// gamevar nw_temp4 0 0
// gamevar nw_ptemp 0 1
gamevar nw_holodukeid 0 1
gamevar nw_musicchange 0 1
gamevar skin DUKE 132097 // do not reset flag enabled
gamevar LOGO_FLAGS 767 0 // default; TEN screen reenabled
state cutsceneambience
getactor[THISACTOR].lotag nw_temp
switch nw_temp
case WIND_AMBIENCE
case WIND_REPEAT
setactor[THISACTOR].lotag WIND2
break
case FLY_BY
setactor[THISACTOR].lotag FLY_BY2
break
endswitch
ends
onevent EVENT_LOADACTOR
getactor[THISACTOR].picnum nw_picnum
switch nw_picnum
case SNOWYDOORSHOCK
spritepal 30
cactor DOORSHOCK
break
case 3765 case 3766 case 3767 case 3768 cactor WOODENHORSE2 break
// case PIGCOP case PIGCOPSTAYPUT case PIGCOPDIVE sizeat 48 40 break
case SOBBOTWALK case SOBBOTFLY sizeat 42 36 break
case ELFUZI case ELFUZISTAYPUT sizeat 32 27 break
case ELFGUN case ELFGUNSTAYPUT sizeat 32 27 break
case SNOWMAN sizeat 42 36 break
case 1915
cactor COMMANDER // failsafe fix for NWL5 bug
break
case MUSICANDSFX
state cutsceneambience
break
case JETPACK
ifspritepal 21 setvar nw_temp 1
spritepal 0
break
/*
case SNOWFLAKE
cactor SNOW
sizeat 8 8
break
*/
case XMASPRESENT
case XMASPRESENT2
getactor[THISACTOR].hitag nw_temp
setactor[THISACTOR].hitag 0
break
endswitch
endevent
onevent EVENT_SPAWN
getactor[THISACTOR].owner nw_owner
getactor[THISACTOR].picnum nw_picnum
endevent
onevent EVENT_EGS
getactor[THISACTOR].picnum nw_picnum
ifactor APLAYER setactor[THISACTOR].mdflags 16
ifactor DUKETORSO setactor[THISACTOR].mdflags 16
ifactor DUKEGUN setactor[THISACTOR].mdflags 16
ifactor DUKELEG setactor[THISACTOR].mdflags 16
ifactor DOORSHOCK setactor[THISACTOR].mdflags 16
ifactor SNOW
{
sizeat 8 8
setvar nw_temp3 0
randvar nw_temp3 2047
setactor[THISACTOR].ang nw_temp3
setvar nw_temp2 -2047
randvar nw_temp2 2047
/*
setvar nw_temp3 0
ifrnd 128 addvar nw_temp3 4
ifrnd 128 addvar nw_temp3 8
setactor[THISACTOR].cstat nw_temp3
*/
}
endevent
// -----------------------------------------------------------------------------
state standard_bjibs
guts JIBS2 1
guts JIBS3 2
guts JIBS4 3
guts JIBS5 2
guts JIBS6 3
ifrnd 6
{
guts JIBS1 1
} // a badly drawn spine
ends
state nwbreakobject
ifaction 0
{
action ANULLACTION
cstator 257
}
ifhitweapon
{
ifdead
{
ifactor WOODSLATS
{
sound GLASS_HEAVYBREAK
debris SCRAP3 5
debris SCRAP4 3
killit
}
else
ifactor RIBBON
{
sound GLASS_HEAVYBREAK
debris SCRAP3 5
debris SCRAP4 3
killit
}
else
ifactor MYBOX
{
sound GLASS_HEAVYBREAK
debris SCRAP3 5
debris SCRAP4 3
killit
}
else
ifactor SNOWGIB killit
else
ifactor DRUNKELF
{
sound PRED_DYING
guts JIBS6 2
guts JIBS6 3
guts JIBS6 4
killit
}
else
ifactor CHOOCHOOSLUT
{
sound GLASS_HEAVYBREAK
debris SCRAP3 5
debris SCRAP4 3
killit
}
else
ifactor HORSEPOWER
{
sound GLASS_HEAVYBREAK
debris SCRAP3 5
debris SCRAP4 3
killit
}
else
ifactor CHANDELIER
{
sound GLASS_BREAKING
debris SCRAP3 3
debris SCRAP4 4
lotsofglass 10
killit
}
else
ifactor TREEWITHSOMETHING
{
sound GLASS_HEAVYBREAK
debris SCRAP3 5
ifrnd 96
{
ifrnd 64 spawn ATOMICHEALTH else spawn SHIELD
}
else
{
ifrnd 128 spawn STEROIDS else spawn FECES
}
killit
}
else
ifactor SSPEAKER
{
debris SCRAP4 3
killit
}
}
}
ends
useractor notenemy WOODSLATS MEDIUMSTRENGTH state nwbreakobject enda
useractor notenemy RIBBON WEAK state nwbreakobject enda
useractor notenemy SSPEAKER WEAK state nwbreakobject enda
useractor notenemy MYBOX WEAK state nwbreakobject enda
useractor notenemy DRUNKELF WEAK state nwbreakobject enda
useractor notenemy CHOOCHOOSLUT WEAK state nwbreakobject enda
useractor notenemy HORSEPOWER WEAK state nwbreakobject enda
useractor notenemy SNOWGIB WEAK state nwbreakobject enda
useractor notenemy CHANDELIER WEAK state nwbreakobject enda
useractor notenemy TREEWITHSOMETHING TOUGH state nwbreakobject enda
actor JETPACK
fall
ifmove RESPAWN_ACTOR_FLAG
state respawnit
else
ifp pshrunk nullop
else
ifp palive
ifpdistl RETRIEVEDISTANCE
ifcount 6
ifpinventory GET_JETPACK JETPACK_AMOUNT
ifcanseetarget
{
ifvare nw_temp 1
{
addinventory GET_JETPACK JETPACK_NEAR_EMPTY
redefinequote 122 This jetpack is almost empty!
quote 122
}
else
{
addinventory GET_JETPACK JETPACK_AMOUNT
quote 41
}
ifspawnedby JETPACK
state getcode
else
state quikget
}
enda
action FEMHDANCE1 205 1 1 1 16
action FEMHDANCE3 205 1 1 1 26
action FEMHDANCE2 206 2 1 1 10
state nwbabecode
getactor[THISACTOR].cstat nw_temp
ifvarand nw_temp 1 nullop else addvar nw_temp 1
ifactor HALFBITCH { ifvarand nw_temp 128 nullop else addvar nw_temp 128 }
ifvarand nw_temp 256 nullop else addvar nw_temp 256
getuserdef .lockout nw_temp2
ifvare nw_temp2 1
{
ifvarand nw_temp 32768 nullop else addvar nw_temp 32768
}
else
// {
ifvarand nw_temp 32768 subvar nw_temp 32768
// }
setactor[THISACTOR].cstat nw_temp
ifactor HALFBITCH nullop else fall
ifaction FEMSHRUNK
{
ifcount SHRUNKDONECOUNT
{
action FEMANIMATE
cstat 257
}
else
ifcount SHRUNKCOUNT
sizeto 40 40
else
state genericshrunkcode
}
else ifaction FEMGROW
{
ifcount 32
{
respawnhitag
guts JIBS4 20
guts JIBS6 20
spritepal 6
soundonce LADY_SCREAM
ifactor SLUTASS debris SCRAP6 1
sound SQUISH2
killit
}
else
sizeto MAXXSTRETCH MAXYSTRETCH
}
else
ifaction FEMHDANCE1
{
ifactioncount 2
action FEMHDANCE2
}
else
ifaction FEMHDANCE2
{
ifactioncount 8
action FEMHDANCE3
}
else
ifaction FEMHDANCE3
{
ifactioncount 2
action FEMANIMATE
}
else
ifaction FEMFROZEN1
{
ifcount THAWTIME
{
action FEMANIMATE
getlastpal
}
else
ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
lotsofglass 30
sound GLASS_BREAKING
respawnhitag
ifrnd 84
spawn BLOODPOOL
killit
}
else
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
else ifaction FEMFROZEN2
{
ifcount THAWTIME
{
action FEMANIMATE
getlastpal
}
else
ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
lotsofglass 30
sound GLASS_BREAKING
ifrnd 84
spawn BLOODPOOL
respawnhitag
ifrnd 128
sound DUKE_HIT_STRIPPER1
else
sound DUKE_HIT_STRIPPER2
killit
}
else
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
ifhitweapon
{
ifdead
{
ifwasweapon GROWSPARK
{
cstat 0
move 0
sound ACTOR_GROWING
action FEMGROW
break
}
else ifwasweapon FREEZEBLAST
{
ifaction FEMSHRUNK
break
action FEMFROZEN1
move 0
spritepal 1
strength 0
sound SOMETHINGFROZE
break
}
ifrnd 128
sound DUKE_HIT_STRIPPER1
else
sound DUKE_HIT_STRIPPER2
respawnhitag
state standard_bjibs
state random_wall_jibs
spawn BLOODPOOL
ifactor HALFBITCH
money 3
else
ifactor SLUTASS
money 3
spritepal 6
soundonce LADY_SCREAM
ifactor NAKED1
debris SCRAP3 18
else
ifactor PODFEM1
debris SCRAP3 18
killit
}
else
{
ifwasweapon SHRINKSPARK
{
sound ACTOR_SHRINKING
move 0
action FEMSHRUNK
cstat 0
break
}
else
ifwasweapon GROWSPARK
sound EXPANDERHIT
sound SQUISH2
guts JIBS6 1
}
}
ifp pfacing
ifpdistl 1280
ifhitspace
{
tip
ifrnd 128
soundonce DUKE_TIP1
else
soundonce DUKE_TIP2
ifactor HALFBITCH
action FEMHDANCE1
}
ends
useractor notenemy HALFBITCH TOUGH
state nwbabecode
enda
useractor notenemy SLUTASS TOUGH
state nwbabecode
enda
state nwl3surprise
ifvare VOLUME 1
{
ifvare LEVEL 2
{
getactor[THISACTOR].sectnum nw_temp
switch nw_temp
case 220 case 221
ifvarn nw_musicchange 1
{
starttrack 12 // doom
setvar nw_musicchange 1
}
break
case 563 case 564 case 565 case 566 case 567
ifvarn nw_musicchange 2
{
starttrack 13 // mario
setvar nw_musicchange 2
}
break
case 192 case 193 case 194 case 195 case 196 case 197 case 198 case 237 case 238 case 239 case 240
case 166 case 167 case 172 case 173 case 174 case 176 case 179
ifvarn nw_musicchange 0
{
starttrackvar LEVEL // level music
setvar nw_musicchange 0
}
break
endswitch
}
}
ends
// Flying Frosty
/*
action ACOMMBREETH 0 3 5 1 40
action ACOMMFROZEN 0 1 5
action ACOMMSPIN -5 1 5 1 12
action ACOMMGET 0 3 5 1 30
action ACOMMSHOOT 20 1 5 1 35
action ACOMMABOUTTOSHOOT 20 1 5 1 30
action ACOMMDYING 30 8 1 1 12
action ACOMMDEAD 38 1 1 1 1
move COMMGETUPVELS 128 -64
move COMMGETVELS 128 64
move COMMSLOW 64 24
move COMMSTOPPED
ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
ai AICOMMGROW ACOMMGET COMMSTOPPED furthestdir
*/
move COMMGETUPVELSNW 128 -64
move COMMGETVELSNW 128 64
move COMMSLOWNW 64 24
move COMMSTOPPEDNW
action ACOMMSPINNW 0 1 5 1 12
action ACOMMSHOOTNW 20 1 5 1 16 // this is custom to shorten the delay between firing freezeblasts
ai AICOMMSPINNW ACOMMSPINNW COMMGETVELSNW spin
ai AICOMMSHOOTNW ACOMMSHOOTNW COMMSTOPPEDNW faceplayerslow
state checkcommhitstate
ifhitweapon
{
debris SCRAP3 5
ifdead
{
ifwasweapon FREEZEBLAST
{
break
}
else
ifwasweapon GROWSPARK
{
sound ACTOR_GROWING
ai AICOMMGROW
break
}
addkills 1
ifwasweapon RADIUSEXPLOSION
{
debris SCRAP3 5
sound SQUISH2
killit
}
else
ifwasweapon RPG
{
sound SQUISH2
debris SCRAP3 5
state standard_jibs
killit
}
debris SCRAP3 100
sound COMM_DYING
ai AICOMMDYING
}
else
{
soundonce COMM_PAIN
ifwasweapon SHRINKSPARK
{
sound ACTOR_SHRINKING
ai AICOMMSHRUNK
}
else
ifwasweapon GROWSPARK
sound EXPANDERHIT
else
ifrnd 24
ai AICOMMABOUTTOSHOOT
}
}
ends
actor COMMANDERSTAYPUT COMMANDERSTRENGTH
cactor COMMANDER
ai AICOMMABOUTTOSHOOT
enda
actor COMMANDER COMMANDERSTRENGTH
state checksquished
ifaction ACOMMFROZEN
{
fall
ifcount THAWTIME
{
getlastpal
ai AICOMMWAIT
}
else
ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
ifrnd 84
spawn BLOODPOOL
lotsofglass 30
sound GLASS_BREAKING
killit
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
ifai 0
ai AICOMMSHOOTNW
else
ifai AICOMMWAIT
{
ifcount 20
{
ifcansee
{
ifcanshoottarget
{
ifrnd 96
ai AICOMMGET
else
ai AICOMMABOUTTOSHOOT
}
}
else
ai AICOMMGET
}
}
else
ifai AICOMMABOUTTOSHOOT
{
ifactioncount 2
{
ifcansee
ai AICOMMSHOOTNW
else
{
ai AICOMMGET
break
}
}
ifrnd 32 soundonce COMM_ATTACK
}
else
ifai AICOMMSHOOTNW
{
ifcanshoottarget
{
ifcount 12
ifrnd 16
ai AICOMMWAIT
ifactioncount 1
{
shoot FREEZEBLAST
resetactioncount
}
getplayer[THISACTOR].i nw_temp
getactor[nw_temp].pal nw_temp
ifvare nw_temp 1 // if player is frozen
ai AICOMMGET
}
else
ai AICOMMGET
}
else
ifai AICOMMSHRUNK
{
ifcount SHRUNKDONECOUNT
ai AICOMMGET
else
ifcount SHRUNKCOUNT
sizeto 48 40
else
state genericshrunkcode
}
else
ifai AICOMMGROW
state genericgrowcode
else
ifai AICOMMGET
{
ifnotmoving
ifrnd 4
operate
ifpdistl 1024
{
ifp palive
{
sound COMM_SPIN
ai AICOMMSPINNW
break
}
getplayer[THISACTOR].i nw_temp
getactor[nw_temp].pal nw_temp
ifvare nw_temp 1 // if player is frozen
{
sound COMM_SPIN
ai AICOMMSPINNW
break
}
}
ifcansee
{
ifp phigher
move COMMGETUPVELS getv geth faceplayer
else
move COMMGETVELS getv geth faceplayer
}
ifactioncount 8
ifrnd 2
ai AICOMMABOUTTOSHOOT
}
else
ifai AICOMMSPINNW
{
soundonce COMM_SPIN
ifcount 16
{
ifpdistl 1280
{
setvar nw_tempb CAPTSPINNINGPLAYER
mulvar nw_tempb -1
// addphealth CAPTSPINNINGPLAYER
getplayer[THISACTOR].i nw_temp
setactor[nw_temp].htextra nw_tempb
setactor[nw_temp].htpicnum KNEE
setactor[nw_temp].htowner THISACTOR
globalsound DUKE_GRUNT
palfrom 32 16
resetcount
}
else
ifpdistg 2300
ai AICOMMWAIT
}
ifactioncount 52
ai AICOMMWAIT
ifnotmoving
ifrnd 32
operate
}
ifai AICOMMDYING
{
fall
strength 0
ifhitweapon
ifwasweapon RADIUSEXPLOSION
{
sound SQUISH2
spawn BLOODPOOL
state standard_jibs
killit
}
ifaction ACOMMDYING
ifactioncount 8
{
iffloordistl 8
sound THUD
cstat 0
action ACOMMDEAD
}
}
else
{
ifrnd 2
soundonce COMM_ROAM
state checkcommhitstate
}
enda
// Frosted Battle Mobile
move TANKSTOPNW
useractor enemy TANK TANKSTRENGTH
fall
// sizeat 45 45
ifaction 0
{
action ATANKWAIT
cstat 257
clipdist 100
}
else
ifaction ATANKSPIN
{
soundonce TANK_ROAM
ifactioncount 20
{
ifrnd 16
ifcansee
ifcanshoottarget
{
move TANKSTOPNW geth
action ATANKSHOOTING
stopsound TANK_ROAM
}
}
ifrnd 16
move TANKFORWARD seekplayer
}
else
ifaction ATANKSHOOTING
{
ifactioncount 22
{
ifpdistg 8192
{
sound BOS1_ATTACK2
shoot MORTER
}
resetcount
move 0 action ATANKWAIT
}
else
ifactioncount 2
{
ifcansee
{
ifpdistl 16384
{
ifrnd 128
{
sound PISTOL_FIRE
shoot SHOTSPARK1
}
}
else
ifrnd 128
{
sound PRED_ATTACK
shoot FIRELASER
}
}
else
{
move TANKFORWARD seekplayer
action ATANKSPIN
}
}
ifrnd 16
{
stopsound TANK_ROAM
move TANKSTOPNW faceplayerslow
}
}
else
ifaction ATANKWAIT
{
ifactioncount 32
{
move TANKFORWARD seekplayer
action ATANKSPIN
}
}
else
ifaction ATANKDEAD
{
addkills 1
hitradius 6144 TOUGH TOUGH TOUGH TOUGH
sound LASERTRIP_EXPLODE
debris SCRAP1 15
spawn EXPLOSION2
ifrnd 128 spawn SNOWMAN
killit
}
ifhitweapon
{
ifdead
action ATANKDEAD
else
{
debris SCRAP1 1
ifaction ATANKSHOOTING break
ifrnd 192
{
move TANKSTOPNW geth
action ATANKSHOOTING
stopsound TANK_ROAM
}
}
}
enda
include NWActor.con
include NWSnow.con
// -----------------------------------------------------------------------------
onevent EVENT_GAME
ifactor APLAYER
{
state nwl3surprise
getplayer[THISACTOR].holoduke_on nw_holodukeid
ifvarg nw_holodukeid -1
setactor[nw_holodukeid].mdflags 16
// addlogvar skin
}
ifactor FRAMEEFFECT1
ifspawnedby APLAYER
setactor[THISACTOR].mdflags 16
/*
ifactor MONEY
{
setactor[THISACTOR].mdflags 16
// getactor[THISACTOR].owner nw_owner
switch nw_owner
case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
getactor[THISACTOR].x nw_x
getactor[THISACTOR].y nw_y
getactor[THISACTOR].z nw_z
updatesectorz nw_x nw_y nw_z nw_temp
ifvarn nw_temp -1 getflorzofslope nw_temp nw_x nw_y nw_temp2 else killit
ifvarvare nw_z nw_temp2 killit
break
endswitch
}
*/
endevent
onevent EVENT_ANIMATESPRITES
ifvare nw_picnum DOORSHOCK
{
ifspritepal 30 settspr[THISACTOR].tsprpicnum 3656
ifvare VOLUME 1 ifvare LEVEL 2 settspr[THISACTOR].tsprpicnum 3656
break
}
ifvare nw_picnum SNOWFLAKE
{
settspr[THISACTOR].tsprpicnum SNOW
settspr[THISACTOR].tsprxrepeat 4
settspr[THISACTOR].tspryrepeat 4
break
}
/*
ifvare nw_picnum MONEY
{
switch nw_owner
case SNOW case SNOWFLAKE case SNOWMAKER case SNOWMAKERNOMOVE
settspr[THISACTOR].tsprpicnum SNOW
break
endswitch
}
*/
switch nw_picnum
case APLAYER
ifvare skin SANTA
{
gettspr[THISACTOR].tsprpicnum nw_temp3
ifvarg nw_temp3 1399 ifvarl nw_temp3 1544 addvar nw_temp3 4096
settspr[THISACTOR].tsprpicnum nw_temp3
ifvarg nw_holodukeid -1
{
gettspr[nw_holodukeid].tsprpicnum nw_temp3
ifvarg nw_temp3 1399 ifvarl nw_temp3 1544 addvar nw_temp3 4096
settspr[nw_holodukeid].tsprpicnum nw_temp3
}
}
break
case FRAMEEFFECT1
ifvare skin SANTA
ifspawnedby APLAYER
{
gettspr[THISACTOR].tsprpicnum nw_temp3
ifvarg nw_temp3 1399 ifvarl nw_temp3 1544 addvar nw_temp3 4096
settspr[THISACTOR].tsprpicnum nw_temp3
}
break
case DUKETORSO
case DUKEGUN
getactor[nw_owner].picnum nw_temp2
ifvare nw_temp2 SOBBOTWALK
{
gettspr[THISACTOR].tsprpicnum nw_temp3
addvar nw_temp3 2456
settspr[THISACTOR].tsprpicnum nw_temp3
}
ifvare nw_temp2 SOBBOTFLY
{
gettspr[THISACTOR].tsprpicnum nw_temp3
addvar nw_temp3 2456
settspr[THISACTOR].tsprpicnum nw_temp3
}
ifvare nw_temp2 APLAYER
{
ifvare skin SANTA
{
gettspr[THISACTOR].tsprpicnum nw_temp3
addvar nw_temp3 2456
settspr[THISACTOR].tsprpicnum nw_temp3
}
}
break
case DUKELEG
getactor[nw_owner].picnum nw_temp2
ifvare nw_temp2 SOBBOTWALK settspr[THISACTOR].tsprpal 30
ifvare nw_temp2 SOBBOTFLY settspr[THISACTOR].tsprpal 30
ifvare nw_temp2 APLAYER ifvare skin SANTA settspr[THISACTOR].tsprpal 30
break
endswitch
ifvare nw_picnum APLAYER // this fixes the bug with the misplaced TV screen tiles
{
gettspr[THISACTOR].tsprpicnum nw_temp
switch nw_temp
case 1470 case 1471 case 1472 case 1473 case 1474
subvar nw_temp 5
settspr[THISACTOR].tsprpicnum nw_temp
break
endswitch
}
endevent
useractor notenemy NWEFFECTOR 0
cstat 32768
// sizeat 1 1
ifspritepal 31 // phone ringing effect
{
/*
getplayer[THISACTOR].cursectnum nw_temp3
switch nw_temp3
case 60 case 61 case 62 case 63
case 86 case 87
case 299 case 300 case 301 case 302 case 303 case 304 case 305 case 306 case 307 case 308 case 309
case 310 case 311 case 312 case 313 case 314 case 315 case 316 case 317
soundonce PHONE_RING
break
default
stopsound PHONE_RING
break
endswitch
*/
ifpdistl 8192 // 4096
soundonce PHONE_RING
ifpdistg 16384
stopsound PHONE_RING
ifpdistl RETRIEVEDISTANCE
ifp pfacing
ifhitspace
ifvare nw_temp2 0
{
setvar nw_temp 0
setvar nw_temp2 1
setvar nw_temp3 0
setvar nw_tempb 0
}
ifvare nw_temp2 1
{
addvar nw_temp 1
stopsound PHONE_RING
ifvare nw_temp 1
sound PHONE_PICKUP
else ifvare nw_temp 30
{
setvar nw_tempb 0
randvar nw_tempb 3
switch nw_tempb
case 0
sound LOWANG1
setvar nw_temp3 57
break
case 1
sound LOWANG2
setvar nw_temp3 124
break
case 2
sound LOWANG3
setvar nw_temp3 121
break
case 3
sound LOWANG4
setvar nw_temp3 156
break
endswitch
addvar nw_temp3 60
setvar nw_tempb 0
}
else ifvarvare nw_temp nw_temp3
{
sound PHONE_HANGUP
setvarvar nw_tempb nw_temp3
addvar nw_tempb 150
}
else ifvarvare nw_temp nw_tempb
{
setvar nw_temp2 0
setvar nw_temp 0
}
}
}
enda
useractor notenemy 3831 0
// cstat 32768
sizeat 12 13
getactor[THISACTOR].sectnum nw_temp
getplayer[THISACTOR].cursectnum nw_temp2
ifvarvare nw_temp nw_temp2
{
setuserdef[THISACTOR].volume_number 1
endofgame 13
}
enda
action WOODENHORSE2FRAME 0 1 5
action WOODEN2FALLFRAME -2738 1 5
useractor notenemy WOODENHORSE2 WEAK WOODENHORSE2FRAME
fall
ifhitweapon
{
ifdead
{
debris SCRAP1 4
debris SCRAP2 3
killit
}
else
action WOODEN2FALLFRAME
}
enda
useractor notenemy NWSTEAM 0
ifpdistl 6144
soundonce STEAM_HISSING
enda
define title_x1 73
define title_x2 306
define title_y 194
define title_zoom 32768
onevent EVENT_DISPLAYMENU
// getplayer[THISACTOR].gm nw_temp
// ifvarand nw_temp 4 nullop else
// {
rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
// }
endevent
/*
onevent EVENT_DISPLAYTITLE
rotatesprite title_x1 title_y title_zoom 0 3838 0 0 0 0 0 xdim ydim
rotatesprite title_x2 title_y title_zoom 0 3839 0 0 0 0 0 xdim ydim
endevent
*/