mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 04:00:42 +00:00
- ported the TitleScreen class.
This commit is contained in:
parent
1022564cab
commit
e75f0c17e4
10 changed files with 600 additions and 23 deletions
|
@ -73,6 +73,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
#include "automap.h"
|
||||
#include "v_draw.h"
|
||||
#include "gi.h"
|
||||
#include "vm.h"
|
||||
|
||||
CVAR(Bool, autoloadlights, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Bool, autoloadbrightmaps, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||
|
@ -275,6 +276,11 @@ void System_CrashInfo(char* buffer, size_t bufflen, const char *lfstr)
|
|||
|
||||
UserConfig userConfig;
|
||||
|
||||
DEFINE_GLOBAL(userConfig)
|
||||
DEFINE_FIELD_X(UserConfigStruct, UserConfig, nomonsters)
|
||||
DEFINE_FIELD_X(UserConfigStruct, UserConfig, nosound)
|
||||
DEFINE_FIELD_X(UserConfigStruct, UserConfig, nologo)
|
||||
|
||||
void UserConfig::ProcessOptions()
|
||||
{
|
||||
// -help etc are omitted
|
||||
|
|
|
@ -235,8 +235,6 @@ int TILE_STATIC;
|
|||
int TILE_BOTTOMSTATUSBAR;
|
||||
int TILE_THREEDEE;
|
||||
int TILE_INGAMEDUKETHREEDEE;
|
||||
int TILE_PLUTOPAKSPRITE;
|
||||
int TILE_MENUBAR;
|
||||
int TILE_ATOMICHEALTH;
|
||||
int TILE_FLOORSLIME;
|
||||
int TILE_JIBS6;
|
||||
|
|
|
@ -261,10 +261,6 @@ void initactorflags_d()
|
|||
TILE_CAMLIGHT = CAMLIGHT;
|
||||
TILE_STATIC = STATIC;
|
||||
TILE_BOTTOMSTATUSBAR = isWorldTour()? WIDESCREENSTATUSBAR : BOTTOMSTATUSBAR;
|
||||
TILE_THREEDEE = THREEDEE;
|
||||
TILE_INGAMEDUKETHREEDEE = INGAMEDUKETHREEDEE;
|
||||
TILE_PLUTOPAKSPRITE = PLUTOPAKSPRITE;
|
||||
TILE_MENUBAR = MENUBAR;
|
||||
TILE_ATOMICHEALTH = ATOMICHEALTH;
|
||||
TILE_FLOORSLIME = FLOORSLIME;
|
||||
TILE_JIBS6 = JIBS6;
|
||||
|
|
|
@ -235,10 +235,6 @@ void initactorflags_r()
|
|||
TILE_CAMLIGHT = CAMLIGHT;
|
||||
TILE_STATIC = STATIC;
|
||||
TILE_BOTTOMSTATUSBAR = BOTTOMSTATUSBAR;
|
||||
TILE_THREEDEE = THREEDEE;
|
||||
TILE_INGAMEDUKETHREEDEE = INGAMEDUKETHREEDEE;
|
||||
TILE_PLUTOPAKSPRITE = PLUTOPAKSPRITE;
|
||||
TILE_MENUBAR = MENUBAR;
|
||||
TILE_ATOMICHEALTH = ATOMICHEALTH;
|
||||
TILE_FLOORSLIME = FLOORSLIME;
|
||||
TILE_JIBS6 = JIBS6;
|
||||
|
|
|
@ -517,6 +517,7 @@ x(THREEDEE, 2498)
|
|||
x(INGAMEDUKETHREEDEE, 2499)
|
||||
x(TENSCREEN, 2500)
|
||||
x(PLUTOPAKSPRITE, 2501)
|
||||
x(TITLEPLUTOPAKSPRITE, 2502)
|
||||
x(MENUPLUTOPAKSPRITE, 2503)
|
||||
x(CREDITPAGE1, 2504)
|
||||
x(CREDITPAGE2, 2505)
|
||||
|
|
|
@ -22,10 +22,6 @@ extern int TILE_CAMCORNER;
|
|||
extern int TILE_CAMLIGHT;
|
||||
extern int TILE_STATIC;
|
||||
extern int TILE_BOTTOMSTATUSBAR;
|
||||
extern int TILE_THREEDEE;
|
||||
extern int TILE_INGAMEDUKETHREEDEE;
|
||||
extern int TILE_PLUTOPAKSPRITE;
|
||||
extern int TILE_MENUBAR;
|
||||
extern int TILE_ATOMICHEALTH;
|
||||
extern int TILE_FLOORSLIME;
|
||||
extern int TILE_JIBS6;
|
||||
|
|
|
@ -720,14 +720,6 @@ void S_PlaySpecialMusic(unsigned int m)
|
|||
}
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(_Duke, PlaySpecialMusic, S_PlaySpecialMusic)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_INT(song);
|
||||
S_PlaySpecialMusic(song);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
|
@ -881,4 +873,28 @@ bool StartCommentary(int tag, DDukeActor* actor)
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(_Duke, PlaySpecialMusic, S_PlaySpecialMusic)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_INT(song);
|
||||
S_PlaySpecialMusic(song);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int PlaySound(int num, int chan, int flags, double vol)
|
||||
{
|
||||
return S_PlaySound(num, chan, EChanFlags::FromInt(flags), float(vol));
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(_Duke, PLaySound, PlaySound)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_INT(snd);
|
||||
PARAM_INT(chan);
|
||||
PARAM_INT(flags);
|
||||
PARAM_FLOAT(vol);
|
||||
ACTION_RETURN_INT(PlaySound(snd, chan, flags, vol));
|
||||
}
|
||||
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -20,7 +20,416 @@ struct Duke native
|
|||
DRUGPAL,
|
||||
BASEPALCOUNT
|
||||
};
|
||||
|
||||
|
||||
native static void PlaySpecialMusic(int which);
|
||||
native static int PlaySound(int num, int channel = CHAN_AUTO, int flags = 0, float vol =0.8f);
|
||||
|
||||
}
|
||||
|
||||
struct DukeSnd native
|
||||
{
|
||||
// This really needs to be done better...
|
||||
enum EDukeSounds
|
||||
{
|
||||
KICK_HIT = 0,
|
||||
PISTOL_RICOCHET = 1,
|
||||
PISTOL_BODYHIT = 2,
|
||||
PISTOL_FIRE = 3,
|
||||
EJECT_CLIP = 4,
|
||||
INSERT_CLIP = 5,
|
||||
CHAINGUN_FIRE = 6,
|
||||
RPG_SHOOT = 7,
|
||||
POOLBALLHIT = 8,
|
||||
RPG_EXPLODE = 9,
|
||||
CAT_FIRE = 10,
|
||||
SHRINKER_FIRE = 11,
|
||||
ACTOR_SHRINKING = 12,
|
||||
PIPEBOMB_BOUNCE = 13,
|
||||
PIPEBOMB_EXPLODE = 14,
|
||||
LASERTRIP_ONWALL = 15,
|
||||
LASERTRIP_ARMING = 16,
|
||||
LASERTRIP_EXPLODE = 17,
|
||||
VENT_BUST = 18,
|
||||
GLASS_BREAKING = 19,
|
||||
GLASS_HEAVYBREAK = 20,
|
||||
SHORT_CIRCUIT = 21,
|
||||
ITEM_SPLASH = 22,
|
||||
DUKE_BREATHING = 23,
|
||||
DUKE_EXHALING = 24,
|
||||
DUKE_GASP = 25,
|
||||
SLIM_RECOG = 26,
|
||||
|
||||
DUKE_URINATE = 28,
|
||||
ENDSEQVOL3SND2 = 29,
|
||||
ENDSEQVOL3SND3 = 30,
|
||||
DUKE_PASSWIND = 32,
|
||||
DUKE_CRACK = 33,
|
||||
SLIM_ATTACK = 34,
|
||||
SOMETHINGHITFORCE = 35,
|
||||
DUKE_DRINKING = 36,
|
||||
DUKE_KILLED1 = 37,
|
||||
DUKE_GRUNT = 38,
|
||||
DUKE_HARTBEAT = 39,
|
||||
DUKE_ONWATER = 40,
|
||||
DUKE_DEAD = 41,
|
||||
DUKE_LAND = 42,
|
||||
DUKE_WALKINDUCTS = 43,
|
||||
DUKE_GLAD = 44,
|
||||
DUKE_YES = 45,
|
||||
DUKE_HEHE = 46,
|
||||
DUKE_SHUCKS = 47,
|
||||
DUKE_UNDERWATER = 48,
|
||||
DUKE_JETPACK_ON = 49,
|
||||
DUKE_JETPACK_IDLE = 50,
|
||||
DUKE_JETPACK_OFF = 51,
|
||||
LIZTROOP_GROWL = 52,
|
||||
LIZTROOP_TALK1 = 53,
|
||||
LIZTROOP_TALK2 = 54,
|
||||
LIZTROOP_TALK3 = 55,
|
||||
DUKETALKTOBOSS = 56,
|
||||
LIZCAPT_GROWL = 57,
|
||||
LIZCAPT_TALK1 = 58,
|
||||
LIZCAPT_TALK2 = 59,
|
||||
LIZCAPT_TALK3 = 60,
|
||||
LIZARD_BEG = 61,
|
||||
LIZARD_PAIN = 62,
|
||||
LIZARD_DEATH = 63,
|
||||
LIZARD_SPIT = 64,
|
||||
DRONE1_HISSRATTLE = 65,
|
||||
DRONE1_HISSSCREECH = 66,
|
||||
DUKE_TIP2 = 67,
|
||||
FLESH_BURNING = 68,
|
||||
SQUISHED = 69,
|
||||
TELEPORTER = 70,
|
||||
ELEVATOR_ON = 71,
|
||||
DUKE_KILLED3 = 72,
|
||||
ELEVATOR_OFF = 73,
|
||||
DOOR_OPERATE1 = 74,
|
||||
SUBWAY = 75,
|
||||
SWITCH_ON = 76,
|
||||
FAN = 77,
|
||||
DUKE_GETWEAPON3 = 78,
|
||||
FLUSH_TOILET = 79,
|
||||
HOVER_CRAFT = 80,
|
||||
EARTHQUAKE = 81,
|
||||
INTRUDER_ALERT = 82,
|
||||
END_OF_LEVEL_WARN = 83,
|
||||
ENGINE_OPERATING = 84,
|
||||
REACTOR_ON = 85,
|
||||
COMPUTER_AMBIENCE = 86,
|
||||
GEARS_GRINDING = 87,
|
||||
BUBBLE_AMBIENCE = 88,
|
||||
MACHINE_AMBIENCE = 89,
|
||||
SEWER_AMBIENCE = 90,
|
||||
WIND_AMBIENCE = 91,
|
||||
SOMETHING_DRIPPING = 92,
|
||||
STEAM_HISSING = 93,
|
||||
THEATER_BREATH = 94,
|
||||
BAR_MUSIC = 95,
|
||||
BOS1_ROAM = 96,
|
||||
BOS1_RECOG = 97,
|
||||
BOS1_ATTACK1 = 98,
|
||||
BOS1_PAIN = 99,
|
||||
BOS1_DYING =100,
|
||||
BOS2_ROAM =101,
|
||||
BOS2_RECOG =102,
|
||||
BOS2_ATTACK =103,
|
||||
BOS2_PAIN =104,
|
||||
BOS2_DYING =105,
|
||||
GETATOMICHEALTH =106,
|
||||
DUKE_GETWEAPON2 =107,
|
||||
BOS3_DYING =108,
|
||||
SHOTGUN_FIRE =109,
|
||||
PRED_ROAM =110,
|
||||
PRED_RECOG =111,
|
||||
PRED_ATTACK =112,
|
||||
PRED_PAIN =113,
|
||||
PRED_DYING =114,
|
||||
CAPT_ROAM =115,
|
||||
CAPT_ATTACK =116,
|
||||
CAPT_RECOG =117,
|
||||
CAPT_PAIN =118,
|
||||
CAPT_DYING =119,
|
||||
PIG_ROAM =120,
|
||||
PIG_RECOG =121,
|
||||
PIG_ATTACK =122,
|
||||
PIG_PAIN =123,
|
||||
PIG_DYING =124,
|
||||
RECO_ROAM =125,
|
||||
RECO_RECOG =126,
|
||||
RECO_ATTACK =127,
|
||||
RECO_PAIN =128,
|
||||
RECO_DYING =129,
|
||||
DRON_ROAM =130,
|
||||
DRON_RECOG =131,
|
||||
DRON_ATTACK1 =132,
|
||||
DRON_PAIN =133,
|
||||
DRON_DYING =134,
|
||||
COMM_ROAM =135,
|
||||
COMM_RECOG =136,
|
||||
COMM_ATTACK =137,
|
||||
COMM_PAIN =138,
|
||||
COMM_DYING =139,
|
||||
OCTA_ROAM =140,
|
||||
OCTA_RECOG =141,
|
||||
OCTA_ATTACK1 =142,
|
||||
OCTA_PAIN =143,
|
||||
OCTA_DYING =144,
|
||||
TURR_ROAM =145,
|
||||
TURR_RECOG =146,
|
||||
TURR_ATTACK =147,
|
||||
DUMPSTER_MOVE =148,
|
||||
SLIM_DYING =149,
|
||||
BOS3_ROAM =150,
|
||||
BOS3_RECOG =151,
|
||||
BOS3_ATTACK1 =152,
|
||||
BOS3_PAIN =153,
|
||||
BOS1_ATTACK2 =154,
|
||||
COMM_SPIN =155,
|
||||
BOS1_WALK =156,
|
||||
DRON_ATTACK2 =157,
|
||||
THUD =158,
|
||||
OCTA_ATTACK2 =159,
|
||||
WIERDSHOT_FLY =160,
|
||||
TURR_PAIN =161,
|
||||
TURR_DYING =162,
|
||||
SLIM_ROAM =163,
|
||||
LADY_SCREAM =164,
|
||||
DOOR_OPERATE2 =165,
|
||||
DOOR_OPERATE3 =166,
|
||||
DOOR_OPERATE4 =167,
|
||||
BORNTOBEWILDSND =168,
|
||||
SHOTGUN_COCK =169,
|
||||
GENERIC_AMBIENCE1 =170,
|
||||
GENERIC_AMBIENCE2 =171,
|
||||
GENERIC_AMBIENCE3 =172,
|
||||
GENERIC_AMBIENCE4 =173,
|
||||
GENERIC_AMBIENCE5 =174,
|
||||
GENERIC_AMBIENCE6 =175,
|
||||
BOS3_ATTACK2 =176,
|
||||
GENERIC_AMBIENCE17 =177,
|
||||
GENERIC_AMBIENCE18 =178,
|
||||
GENERIC_AMBIENCE19 =179,
|
||||
GENERIC_AMBIENCE20 =180,
|
||||
GENERIC_AMBIENCE21 =181,
|
||||
GENERIC_AMBIENCE22 =182,
|
||||
SECRETLEVELSND =183,
|
||||
GENERIC_AMBIENCE8 =184,
|
||||
GENERIC_AMBIENCE9 =185,
|
||||
GENERIC_AMBIENCE10 =186,
|
||||
GENERIC_AMBIENCE11 =187,
|
||||
GENERIC_AMBIENCE12 =188,
|
||||
GENERIC_AMBIENCE13 =189,
|
||||
GENERIC_AMBIENCE14 =190,
|
||||
GENERIC_AMBIENCE15 =192,
|
||||
GENERIC_AMBIENCE16 =193,
|
||||
FIRE_CRACKLE =194,
|
||||
BONUS_SPEECH1 =195,
|
||||
BONUS_SPEECH2 =196,
|
||||
BONUS_SPEECH3 =197,
|
||||
PIG_CAPTURE_DUKE =198,
|
||||
BONUS_SPEECH4 =199,
|
||||
DUKE_LAND_HURT =200,
|
||||
DUKE_HIT_STRIPPER1 =201,
|
||||
DUKE_TIP1 =202,
|
||||
DUKE_KILLED2 =203,
|
||||
PRED_ROAM2 =204,
|
||||
PIG_ROAM2 =205,
|
||||
DUKE_GETWEAPON1 =206,
|
||||
DUKE_SEARCH2 =207,
|
||||
DUKE_CRACK2 =208,
|
||||
DUKE_SEARCH =209,
|
||||
DUKE_GET =210,
|
||||
DUKE_LONGTERM_PAIN =211,
|
||||
MONITOR_ACTIVE =212,
|
||||
NITEVISION_ONOFF =213,
|
||||
DUKE_HIT_STRIPPER2 =214,
|
||||
DUKE_CRACK_FIRST =215,
|
||||
DUKE_USEMEDKIT =216,
|
||||
DUKE_TAKEPILLS =217,
|
||||
DUKE_PISSRELIEF =218,
|
||||
SELECT_WEAPON =219,
|
||||
WATER_GURGLE =220,
|
||||
DUKE_GETWEAPON4 =221,
|
||||
JIBBED_ACTOR1 =222,
|
||||
JIBBED_ACTOR2 =223,
|
||||
JIBBED_ACTOR3 =224,
|
||||
JIBBED_ACTOR4 =225,
|
||||
JIBBED_ACTOR5 =226,
|
||||
JIBBED_ACTOR6 =227,
|
||||
JIBBED_ACTOR7 =228,
|
||||
DUKE_GOTHEALTHATLOW =229,
|
||||
BOSSTALKTODUKE =230,
|
||||
WAR_AMBIENCE1 =231,
|
||||
WAR_AMBIENCE2 =232,
|
||||
WAR_AMBIENCE3 =233,
|
||||
WAR_AMBIENCE4 =234,
|
||||
WAR_AMBIENCE5 =235,
|
||||
WAR_AMBIENCE6 =236,
|
||||
WAR_AMBIENCE7 =237,
|
||||
WAR_AMBIENCE8 =238,
|
||||
WAR_AMBIENCE9 =239,
|
||||
WAR_AMBIENCE10 =240,
|
||||
ALIEN_TALK1 =241,
|
||||
ALIEN_TALK2 =242,
|
||||
EXITMENUSOUND =243,
|
||||
FLY_BY =244,
|
||||
DUKE_SCREAM =245,
|
||||
SHRINKER_HIT =246,
|
||||
RATTY =247,
|
||||
INTO_MENU =248,
|
||||
BONUSMUSIC =249,
|
||||
DUKE_BOOBY =250,
|
||||
DUKE_TALKTOBOSSFALL =251,
|
||||
DUKE_LOOKINTOMIRROR =252,
|
||||
PIG_ROAM3 =253,
|
||||
KILLME =254,
|
||||
DRON_JETSND =255,
|
||||
SPACE_DOOR1 =256,
|
||||
SPACE_DOOR2 =257,
|
||||
SPACE_DOOR3 =258,
|
||||
SPACE_DOOR4 =259,
|
||||
SPACE_DOOR5 =260,
|
||||
ALIEN_ELEVATOR1 =261,
|
||||
VAULT_DOOR =262,
|
||||
JIBBED_ACTOR13 =263,
|
||||
DUKE_GETWEAPON6 =264,
|
||||
JIBBED_ACTOR8 =265,
|
||||
JIBBED_ACTOR9 =266,
|
||||
JIBBED_ACTOR10 =267,
|
||||
JIBBED_ACTOR11 =268,
|
||||
JIBBED_ACTOR12 =269,
|
||||
DUKE_KILLED4 =270,
|
||||
DUKE_KILLED5 =271,
|
||||
ALIEN_SWITCH1 =272,
|
||||
DUKE_STEPONFECES =273,
|
||||
DUKE_LONGTERM_PAIN2 =274,
|
||||
DUKE_LONGTERM_PAIN3 =275,
|
||||
DUKE_LONGTERM_PAIN4 =276,
|
||||
COMPANB2 =277,
|
||||
KTIT =278,
|
||||
HELICOP_IDLE =279,
|
||||
STEPNIT =280,
|
||||
SPACE_AMBIENCE1 =281,
|
||||
SPACE_AMBIENCE2 =282,
|
||||
SLIM_HATCH =283,
|
||||
RIPHEADNECK =284,
|
||||
FOUNDJONES =285,
|
||||
ALIEN_DOOR1 =286,
|
||||
ALIEN_DOOR2 =287,
|
||||
ENDSEQVOL3SND4 =288,
|
||||
ENDSEQVOL3SND5 =289,
|
||||
ENDSEQVOL3SND6 =290,
|
||||
ENDSEQVOL3SND7 =291,
|
||||
ENDSEQVOL3SND8 =292,
|
||||
ENDSEQVOL3SND9 =293,
|
||||
WHIPYOURASS =294,
|
||||
ENDSEQVOL2SND1 =295,
|
||||
ENDSEQVOL2SND2 =296,
|
||||
ENDSEQVOL2SND3 =297,
|
||||
ENDSEQVOL2SND4 =298,
|
||||
ENDSEQVOL2SND5 =299,
|
||||
ENDSEQVOL2SND6 =300,
|
||||
ENDSEQVOL2SND7 =301,
|
||||
GENERIC_AMBIENCE23 =302,
|
||||
SOMETHINGFROZE =303,
|
||||
DUKE_LONGTERM_PAIN5 =304,
|
||||
DUKE_LONGTERM_PAIN6 =305,
|
||||
DUKE_LONGTERM_PAIN7 =306,
|
||||
DUKE_LONGTERM_PAIN8 =307,
|
||||
WIND_REPEAT =308,
|
||||
MYENEMY_ROAM =309,
|
||||
MYENEMY_HURT =310,
|
||||
MYENEMY_DEAD =311,
|
||||
MYENEMY_SHOOT =312,
|
||||
STORE_MUSIC =313,
|
||||
STORE_MUSIC_BROKE =314,
|
||||
ACTOR_GROWING =315,
|
||||
NEWBEAST_ROAM =316,
|
||||
NEWBEAST_RECOG =317,
|
||||
NEWBEAST_ATTACK =318,
|
||||
NEWBEAST_PAIN =319,
|
||||
NEWBEAST_DYING =320,
|
||||
NEWBEAST_SPIT =321,
|
||||
VOL4_1 =322,
|
||||
SUPERMARKET =323,
|
||||
MOUSEANNOY =324,
|
||||
BOOKEM =325,
|
||||
SUPERMARKETCRY =326,
|
||||
DESTRUCT =327,
|
||||
EATFOOD =328,
|
||||
MAKEMYDAY =329,
|
||||
WITNESSSTAND =330,
|
||||
VACATIONSPEECH =331,
|
||||
YIPPEE1 =332,
|
||||
YOHOO1 =333,
|
||||
YOHOO2 =334,
|
||||
DOLPHINSND =335,
|
||||
TOUGHGALSND1 =336,
|
||||
TOUGHGALSND2 =337,
|
||||
TOUGHGALSND3 =338,
|
||||
TOUGHGALSND4 =339,
|
||||
TANK_ROAM =340,
|
||||
BOS4_ROAM =341,
|
||||
BOS4_RECOG =342,
|
||||
BOS4_ATTACK =343,
|
||||
BOS4_PAIN =344,
|
||||
BOS4_DYING =345,
|
||||
NEWBEAST_ATTACKMISS =346,
|
||||
VOL4_2 =347,
|
||||
COOKINGDEEPFRIER =348,
|
||||
WHINING_DOG =349,
|
||||
DEAD_DOG =350,
|
||||
LIGHTNING_SLAP =351,
|
||||
THUNDER =352,
|
||||
HAPPYMOUSESND1 =353,
|
||||
HAPPYMOUSESND2 =354,
|
||||
HAPPYMOUSESND3 =355,
|
||||
HAPPYMOUSESND4 =356,
|
||||
ALARM =357,
|
||||
RAIN =358,
|
||||
DTAG_GREENRUN =359,
|
||||
DTAG_BROWNRUN =360,
|
||||
DTAG_GREENSCORE =361,
|
||||
DTAG_BROWNSCORE =362,
|
||||
INTRO4_1 =363,
|
||||
INTRO4_2 =364,
|
||||
INTRO4_3 =365,
|
||||
INTRO4_4 =366,
|
||||
INTRO4_5 =367,
|
||||
INTRO4_6 =368,
|
||||
SCREECH =369,
|
||||
BOSS4_DEADSPEECH =370,
|
||||
BOSS4_FIRSTSEE =371,
|
||||
PARTY_SPEECH =372,
|
||||
POSTAL_SPEECH =373,
|
||||
TGSPEECH =374,
|
||||
DOGROOMSPEECH =375,
|
||||
SMACKED =376,
|
||||
MDEVSPEECH =377,
|
||||
AREA51SPEECH =378,
|
||||
JEEPSOUND =379,
|
||||
BIGDOORSLAM =380,
|
||||
BOS4_LAY =381,
|
||||
WAVESOUND =382,
|
||||
ILLBEBACK =383,
|
||||
VOL4ENDSND1 =384,
|
||||
VOL4ENDSND2 =385,
|
||||
EXPANDERHIT =386,
|
||||
SNAKESPEECH =387,
|
||||
EXPANDERSHOOT =388,
|
||||
GETBACKTOWORK =389,
|
||||
JIBBED_ACTOR14 =390,
|
||||
JIBBED_ACTOR15 =391,
|
||||
INTRO4_B =392,
|
||||
BIGBANG =393,
|
||||
SMACKIT =394,
|
||||
BELLSND =395,
|
||||
GOAWAY =396,
|
||||
JOKE =397,
|
||||
FLAMETHROWER_INTRO =398,
|
||||
FLAMETHROWER_LOOP =399,
|
||||
FLAMETHROWER_END =400,
|
||||
E5L7_DUKE_QUIT_YOU =401,
|
||||
}
|
||||
}
|
|
@ -33,3 +33,104 @@ class DRealmsScreen : SkippableScreenJob
|
|||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
class TitleScreen : SkippableScreenJob
|
||||
{
|
||||
int soundanm;
|
||||
|
||||
void Init()
|
||||
{
|
||||
Super.Init(fadein | fadeout);
|
||||
soundanm = 0;
|
||||
}
|
||||
|
||||
override void Start()
|
||||
{
|
||||
if (Build.isNam() || userConfig.nologo) Duke.PlaySpecialMusic(Duke.MUS_INTRO);
|
||||
}
|
||||
|
||||
override void OnTick()
|
||||
{
|
||||
int clock = ticks * 120 / GameTicRate;
|
||||
if (soundanm == 0 && clock >= 120 && clock < 120 + 60)
|
||||
{
|
||||
soundanm = 1;
|
||||
Duke.PlaySound(DukeSnd.PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
if (soundanm == 1 && clock > 220 && clock < (220 + 30))
|
||||
{
|
||||
soundanm = 2;
|
||||
Duke.PlaySound(DukeSnd.PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
if (soundanm == 2 && clock >= 280 && clock < 395)
|
||||
{
|
||||
soundanm = 3;
|
||||
if (Build.isPlutoPak()) Duke.PlaySound(DukeSnd.FLY_BY, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
else if (soundanm == 3 && clock >= 395)
|
||||
{
|
||||
soundanm = 4;
|
||||
if (Build.isPlutoPak()) Duke.PlaySound(DukeSnd.PIPEBOMB_EXPLODE, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
|
||||
if (clock > (860 + 120))
|
||||
{
|
||||
jobstate = finished;
|
||||
}
|
||||
}
|
||||
|
||||
override void Draw(double smoothratio)
|
||||
{
|
||||
int clock = (ticks + smoothratio) * 120 / GameTicRate;
|
||||
|
||||
screen.ClearScreen();
|
||||
|
||||
// Only translate if the image depends on the global palette.
|
||||
let tex = TexMan.CheckForTexture("BETASCREEN");
|
||||
int trans = TexMan.UseGamePalette(tex)? Translation.MakeID(Translation_BasePalette, Duke.TITLEPAL) : 0;
|
||||
screen.DrawTexture(tex, true, 0, 0, DTA_FullscreenEx, FSMode_ScaleToFit43, DTA_TranslationIndex, trans, DTA_LegacyRenderStyle, STYLE_Normal);
|
||||
|
||||
double scale = clamp(clock - 120, 0, 60) / 64.;
|
||||
if (scale > 0.)
|
||||
{
|
||||
let tex = TexMan.CheckForTexture("DUKENUKEM");
|
||||
trans = TexMan.UseGamePalette(tex)? Translation.MakeID(Translation_BasePalette, Duke.TITLEPAL) : 0; // re-check for different texture!
|
||||
|
||||
screen.DrawTexture(tex, true, 160, 104, DTA_FullscreenScale, FSMode_Fit320x200,
|
||||
DTA_CenterOffsetRel, true, DTA_TranslationIndex, trans, DTA_ScaleX, scale, DTA_ScaleY, scale);
|
||||
}
|
||||
|
||||
scale = clamp(clock - 220, 0, 30) / 32.;
|
||||
if (scale > 0.)
|
||||
{
|
||||
let tex = TexMan.CheckForTexture("THREEDEE");
|
||||
trans = TexMan.UseGamePalette(tex)? Translation.MakeID(Translation_BasePalette, Duke.TITLEPAL) : 0; // re-check for different texture!
|
||||
|
||||
screen.DrawTexture(tex, true, 160, 129, DTA_FullscreenScale, FSMode_Fit320x200,
|
||||
DTA_CenterOffsetRel, true, DTA_TranslationIndex, trans, DTA_ScaleX, scale, DTA_ScaleY, scale);
|
||||
}
|
||||
|
||||
if (Build.isPlutoPak())
|
||||
{
|
||||
scale = (410 - clamp(clock, 280, 395)) / 16.;
|
||||
if (scale > 0. && clock > 280)
|
||||
{
|
||||
let tex = TexMan.CheckForTexture("TITLEPLUTOPAKSPRITE");
|
||||
trans = TexMan.UseGamePalette(tex)? Translation.MakeID(Translation_BasePalette, Duke.TITLEPAL) : 0; // re-check for different texture!
|
||||
|
||||
screen.DrawTexture(tex, true, 160, 151, DTA_FullscreenScale, FSMode_Fit320x200,
|
||||
DTA_CenterOffsetRel, true, DTA_TranslationIndex, trans, DTA_ScaleX, scale, DTA_ScaleY, scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override void OnDestroy()
|
||||
{
|
||||
Duke.PlaySound(DukeSnd.NITEVISION_ONOFF, CHAN_AUTO, CHANF_UI);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,17 @@ enum EGameType
|
|||
|
||||
};
|
||||
|
||||
struct UserConfigStruct native
|
||||
{
|
||||
native bool nomonsters;
|
||||
native bool nosound;
|
||||
native bool nologo;
|
||||
}
|
||||
|
||||
extend struct _
|
||||
{
|
||||
native @UserConfigStruct userConfig;
|
||||
}
|
||||
|
||||
struct Build
|
||||
{
|
||||
|
@ -36,6 +47,53 @@ struct Build
|
|||
}
|
||||
|
||||
native static Color shadeToLight(int shade);
|
||||
|
||||
// game check shortcuts
|
||||
static bool isNam()
|
||||
{
|
||||
return gameinfo.gametype & (GAMEFLAG_NAM | GAMEFLAG_NAPALM);
|
||||
}
|
||||
|
||||
static bool isNamWW2GI()
|
||||
{
|
||||
return gameinfo.gametype & (GAMEFLAG_NAM | GAMEFLAG_NAPALM |GAMEFLAG_WW2GI);
|
||||
}
|
||||
|
||||
static bool isWW2GI()
|
||||
{
|
||||
return gameinfo.gametype & (GAMEFLAG_WW2GI);
|
||||
}
|
||||
|
||||
static bool isRR()
|
||||
{
|
||||
return gameinfo.gametype & (GAMEFLAG_RRALL);
|
||||
}
|
||||
|
||||
static bool isRRRA()
|
||||
{
|
||||
return gameinfo.gametype & (GAMEFLAG_RRRA);
|
||||
}
|
||||
|
||||
static bool isWorldTour()
|
||||
{
|
||||
return gameinfo.gametype & GAMEFLAG_WORLDTOUR;
|
||||
}
|
||||
|
||||
static bool isPlutoPak()
|
||||
{
|
||||
return gameinfo.gametype & GAMEFLAG_PLUTOPAK;
|
||||
}
|
||||
|
||||
static bool isShareware()
|
||||
{
|
||||
return gameinfo.gametype & GAMEFLAG_SHAREWARE;
|
||||
}
|
||||
|
||||
static bool isBlood()
|
||||
{
|
||||
return gameinfo.gametype & GAMEFLAG_BLOOD;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue