Rev 73 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*
--------------------------------------------------------------------------------
Duke Caribbean: Life's A Beach
By Joris Weimar
© 1997 Sunstorm Interactive
--------------------------------------------------------------------------------
Duke Caribbean: Life's A Beach Plus
By Hendricks266
--------------------------------------------------------------------------------
*/
definegamefuncname 34 Sunglasses
definegamefuncname 35 Crate_of_Bananas
definegamefuncname 48 Hot_Sauce
include VacaDefs.con
include VacaUser.con
include VSounds.con
include VBeachBall.con
spritenoshade GROWAMMO
setgamename Duke Caribbean: Life's A Beach
gamevar vaca_temp 0 2
gamevar vaca_x 0 2
gamevar vaca_y 0 2
gamevar vaca_picnum 0 2
gamevar vaca_temp2 0 2
gamevar vaca_temp3 0 2
gamevar vaca_x2 0 2
gamevar vaca_y2 0 2
gamevar vaca_pose 0 0
// disable hardcoded Polymer dynamic lighting muzzle flashes
gamevar WEAPON1_FLASHCOLOR 0 1
gamevar WEAPON2_FLASHCOLOR 0 1
gamevar WEAPON3_FLASHCOLOR 0 1
gamevar WEAPON4_FLASHCOLOR 0 1
gamevar WEAPON7_FLASHCOLOR 0 1
gamevar WEAPON9_FLASHCOLOR 0 1
// disable voodoo ring glowing flag
// even though only the crystals are supposed to glow, bugs in EDuke32 have caused the frames to glow too
gamevar WEAPON6_FLAGS 0 1
gamevar WEAPON11_FLAGS 0 1
// disable visibility clearing
gamevar WEAPON1_FLAGS 33024 1
gamevar WEAPON2_FLAGS 1280 1
gamevar WEAPON3_FLAGS 74068 1
gamevar WEAPON4_FLAGS 256 1
gamevar WEAPON7_FLAGS 328 1
gamevar WEAPON9_FLAGS 65792 1
onevent EVENT_GETMENUTILE
setvar RETURN 3281
endevent
/*
onevent EVENT_GETLOADTILE
ifvare VOLUME 2
{
ifvare LEVEL 2 setvar RETURN 19665
ifvare LEVEL 3 setvar RETURN 19665
}
endevent
onevent EVENT_DISPLAYLOADINGSCREEN
ifvare VOLUME 2
{
ifvare LEVEL 2 rotatesprite 160 100 65536 0 3706 0 0 2 0 0 xdim ydim
ifvare LEVEL 3 rotatesprite 160 95 65536 0 3639 0 0 2 0 0 xdim ydim
}
endevent
*/
state cutsceneambience
getactor[THISACTOR].lotag vaca_temp
switch vaca_temp
case WIND_AMBIENCE
case WIND_REPEAT
setactor[THISACTOR].lotag WIND2
break
endswitch
ends
onevent EVENT_LOADACTOR
getactor[THISACTOR].picnum vaca_picnum
switch vaca_picnum
case DRAGON sizeat 42 50 break
case BEACHBABE1 sizeat 40 40 break
case BEACHBALL sizeat 30 30 break
case BEACHBATHER1 sizeat 42 40 break
case SEAGULL sizeat 20 20 break
case GROWSPRITEICON sizeat 28 28 break
case 681 case 682 case 683 case 684 cactor CHAIR3 break
case CAMERA1
getactor[THISACTOR].cstat vaca_temp
setvar vaca_temp2 0
ifvarand vaca_temp 4 addvar vaca_temp2 4
ifvarand vaca_temp 8 addvar vaca_temp2 8
setactor[THISACTOR].cstat vaca_temp2
break
case MUSICANDSFX
state cutsceneambience
break
endswitch
endevent
gamevar LOGO_FLAGS 767 0 // default; TEN screen reenabled
onevent EVENT_GAME
getactor[THISACTOR].picnum vaca_picnum
switch vaca_picnum
case RPG
case FREEZEBLAST
setactor[THISACTOR].htflags 256
break
case FIRELASER
spritepal 1
setactor[THISACTOR].htflags 256
break
/*
case MUSICANDSFX
ifsound WIND_AMBIENCE stopsound WIND_AMBIENCE
ifsound WIND_REPEAT stopsound WIND_REPEAT
break
*/
case CHAIR3
ifvare vaca_temp3 0
{
findnearsprite3d 1037 768 vaca_temp
ifvarn vaca_temp -1
{
getactor[vaca_temp].x vaca_x2
getactor[vaca_temp].y vaca_y2
getactor[THISACTOR].x vaca_x
getactor[THISACTOR].y vaca_y // gets the coordinates of the chair and table
subvarvar vaca_x2 vaca_x
subvarvar vaca_y2 vaca_y
getangle vaca_temp2 vaca_x2 vaca_y2 // calculates the angle to face the table
setactor[THISACTOR].ang vaca_temp2 // sets the angle
setvar vaca_temp3 1
}
else setvar vaca_temp3 1
}
break
case SHELL
case SHOTGUNSHELL
killit
break
case CAMERA1
setactor[THISACTOR].cstat vaca_temp2
break
case SMALLSMOKE
ifspawnedby RPG killit
break
case SHOTSPARK1
ifspawnedby JIBS6 spritepal 1
ifspawnedby BLOODSPLAT1 spritepal 1
ifspawnedby SHOTSPARK1 spritepal 1
ifspawnedby SHOTGUN spritepal 1
ifspawnedby CHAINGUN spritepal 1
ifspawnedby FIRELASER spritepal 1
ifspawnedby APLAYER spritepal 1
ifspawnedby RPG killit
ifspritepal 1 setactor[THISACTOR].htflags 256 // replace with blue light placement code when available
break
case GROWAMMO
setactor[THISACTOR].mdflags 16
break
endswitch
endevent
onevent EVENT_EGS
getactor[THISACTOR].picnum vaca_picnum
switch vaca_picnum
case FREEZEAMMO
spritepal 1
spawn BLOODPOOL // spawn a water puddle as an added "cool" effect
getlastpal
break
case WATERSPLASH2
ifspawnedby SEAGULLSHIT spritepal 19
break
endswitch
endevent
state scrap3_colorchange
ifspritepal 10 spritepal 2
else ifspritepal 11 spritepal 8
else ifspritepal 12 spritepal 0
else ifspritepal 13 spritepal 0 // needs work
else ifspritepal 14 spritepal 8
else ifspritepal 15 spritepal 7 // needs work
else ifspritepal 16 spritepal 1
else ifspritepal 18 spritepal 0
else ifspritepal 21 spritepal 2
else ifspritepal 22 spritepal 8
else ifspritepal 23 spritepal 7
else spritepal 1 // This is so that the white SCRAP3 will turn the color of the object (chair, dragon) (approximately).
ends
onevent EVENT_KILLIT
ifactor CHAIR3
{
state scrap3_colorchange
debris SCRAP3 12
getlastpal
sound GLASS_HEAVYBREAK
sound VENT_BUST
}
endevent
// -----------------------------------------------------------------------------
state standard_bjibs
guts JIBS2 1
guts JIBS3 2
guts JIBS4 3
guts JIBS5 2
guts JIBS6 3
ifrnd 6
{
guts JIBS1 1
spawn BLOODPOOL
} // a badly drawn spine
ends
state randgetweapsnds
setvar vaca_temp2 0
randvar vaca_temp2 2
switch vaca_temp2
case 0 globalsound DUKE_GETWEAPON1 break
case 1 globalsound DUKE_GETWEAPON2 break
case 2 globalsound DUKE_GETWEAPON4 break
endswitch
ends
actor FIRSTGUNSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG
state respawnit
else
ifp pshrunk nullop
else
ifp palive
ifpdistl RETRIEVEDISTANCE
ifcount 6
ifcanseetarget
{
ifgotweaponce 0
break
addweapon PISTOL_WEAPON 48
quote 1118
ifspawnedby FIRSTGUNSPRITE
state getweaponcode
else
state quikweaponget
}
enda
actor CRYSTALAMMO
fall
ifmove RESPAWN_ACTOR_FLAG
state respawnit
else
ifp pshrunk nullop
else
ifp palive
ifpdistl RETRIEVEDISTANCE
ifcount 6
ifcanseetarget
{
getplayer[THISACTOR].gotweapon SHRINKER_WEAPON vaca_temp2
getplayer[THISACTOR].gotweapon GROW_WEAPON vaca_temp
addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT
ifvare vaca_temp2 0 ifvare vaca_temp 1 setplayer[THISACTOR].gotweapon SHRINKER_WEAPON 1
quote 78
ifspawnedby CRYSTALAMMO
state getcode
else
state quikget
}
enda
actor GROWAMMO
fall
ifmove RESPAWN_ACTOR_FLAG
state respawnit
else
ifp pshrunk nullop
else
ifp palive
ifpdistl RETRIEVEDISTANCE
ifcount 6
ifcanseetarget
{
getplayer[THISACTOR].gotweapon SHRINKER_WEAPON vaca_temp2
getplayer[THISACTOR].gotweapon GROW_WEAPON vaca_temp
addammo GROW_WEAPON GROWCRYSTALAMMOAMOUNT
ifvare vaca_temp 0 ifvare vaca_temp2 1 setplayer[THISACTOR].gotweapon GROW_WEAPON 1
quote 123
ifspawnedby GROWAMMO
state getcode
else
state quikget
}
enda
actor SHRINKERSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG
state respawnit
else
ifp pshrunk nullop
else
ifp palive
ifpdistl RETRIEVEDISTANCE
ifcount 6
ifcanseetarget
{
ifgotweaponce 0
break
getplayer[THISACTOR].gotweapon GROW_WEAPON vaca_temp
addweapon SHRINKER_WEAPON 10
ifvare vaca_temp 0 setplayer[THISACTOR].gotweapon GROW_WEAPON 0
quote 60
ifspawnedby SHRINKERSPRITE
state getweaponcode
else
state quikweaponget
}
enda
useractor notenemy GROWSPRITEICON 0
fall
ifspritepal 1 ifmultiplayer spritepal 0 else killit
ifmove RESPAWN_ACTOR_FLAG
state respawnit
else
ifp pshrunk nullop
else
ifp palive
ifpdistl RETRIEVEDISTANCE
ifcount 6
ifcanseetarget
{
ifgotweaponce 0
break
getplayer[THISACTOR].gotweapon SHRINKER_WEAPON vaca_temp
addweapon GROW_WEAPON 10
ifvare vaca_temp 0 setplayer[THISACTOR].gotweapon SHRINKER_WEAPON 0
quote 999
ifspawnedby GROWSPRITEICON
state getweaponcode
else
state quikweaponget
}
enda
state babechecksquished
ifsquished
{
sound SQUISHED
state standard_bjibs
state random_ooz
killit
}
ends
include VSeagull.con
include VDragon.con
include VBeachBather.con
include VBeachBabe.con
// -----------------------------------------------------------------------------
useractor notenemy 3831 0
// cstat 32768
sizeat 12 13
getactor[THISACTOR].sectnum vaca_temp
getplayer[THISACTOR].cursectnum vaca_temp2
ifvarvare vaca_temp vaca_temp2
{
setuserdef[THISACTOR].volume_number 2
endofgame 13
}
enda
useractor notenemy TIKIGOD 0
getactor[THISACTOR].cstat vaca_temp
ifvarand vaca_temp 16 setactor[THISACTOR].mdflags 1
enda
onevent EVENT_ANIMATESPRITES
switch vaca_picnum
case GROWAMMO
// t->shade = (sintable[(totalclock<<4)&2047]>>10);
setvarvar vaca_temp totalclock
shiftvarl vaca_temp 4
andvar vaca_temp 2047
sin vaca_temp vaca_temp
shiftvarr vaca_temp 10
settspr[THISACTOR].tsprshade vaca_temp
break
case DRAGON
case DRAGONDEATH
ifvarn vaca_temp3 -1
settspr[THISACTOR].tsprang vaca_temp3
break
endswitch
endevent
define title_x1 54
define title_x2 306
define title_y1 186
define title_y2 194
define title_zoom 32768
onevent EVENT_DISPLAYMENU
// getplayer[THISACTOR].gm vaca_temp
// ifvarand vaca_temp 4 nullop else
// {
rotatesprite title_x1 title_y1 title_zoom 0 3838 0 0 256 0 0 xdim ydim
rotatesprite title_x2 title_y2 title_zoom 0 3839 0 0 512 0 0 xdim ydim
// }
endevent