'Kings Bounty 64, Logo Screen Intro
'2019, Feb 25, 18:10 EST
'2019, Feb 26, 00:32 EST Ver 1.1a
'2019, Apr 12, 10:35 EDT Final Tweaking logo intro-finished
'UniKorn ProDucKions- Cobalt
'YouTube Preview- [youtube]https://youtu.be/NJ6gJVpzGN8[/youtube]
CONST TRUE
= -1, FALSE
= NOT TRUE
, LARGE
= 1, SMALL
= 2 '------------------Layer constants------------------
CONST MIX
= 1, WINDOWS
= 2, TILES
= 3, BACKGROUNDS
= 4, UNITS
= 5, START_SCREENS
= 6 CONST BGCOLOR
= 8, VICTORY
= 9, TEMP_1
= 21, TEMP_2
= 22, TEMP_3
= 23 CONST SPELLCHART
= 19, VILLAINCHART
= 20
Layer
(MIX
) = _NEWIMAGE(640, 480, 32) 'mix layerLayer
(START_SCREENS
) = _LOADIMAGE("startscreens.png", 32) 'sheet layerLayer
(TEMP_2
) = _NEWIMAGE(640, 480, 32) 'fade in\out layerLayer
(TEMP_3
) = _NEWIMAGE(640, 480, 32) 'NWC screen fade Trigger(i%%) = FALSE
_TITLE "Kings Bounty 64- Logo Intro" 'IF BGM& THEN _SNDPLAY BGM&
'Start_Logos
Fade_In_Character_Screen
Character_Selection_Screen
Names:
DATA "Sir Crimsaun","Lord Palmer","Tynnestra","Mad Moham" Titles:
DATA "Knight","General","Marshal","Lord" DATA "Paladin","Crusader","Avenger","Champion" DATA "Sorceress","Magcian","Mage","Archmage" DATA "Barbarian","Chieftain","Warlord","Overlord"
SUB Character_Selection_Screen
'place 'zoomed' image onto temp layer to save speed later
_PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(TEMP_3
), (0, 448)-STEP(319, 223)
FOR i%%
= 0 TO 10: Trigger
(i%%
) = FALSE:
NEXT i%%
CASE Control.Start_Button
IF Trigger
(1) THEN Difficulty%%
= Selection%%: ExitFlag%%
= TRUE
IF NOT Trigger
(1) AND Selection%%
<> 4 THEN Trigger
(1) = TRUE: Character%%
= Selection%%: Selection%%
= 1:
_PUTIMAGE , Layer
(0), Layer
(TEMP_1
) Selection%% = Selection%% - 1
IF Selection%%
= -1 THEN Selection%%
= 4 IF Selection%%
= -1 THEN Selection%%
= 3 Selection%% = Selection%% + 1
IF Selection%%
= 5 THEN Selection%%
= 0 IF Selection%%
= 4 THEN Selection%%
= 0 ExitFlag%% = TRUE
IF NOT Trigger
(0) AND KBD&
THEN Trigger
(0) = TRUE: Selection%%
= 0 'stop credits and pick character IF Trigger
(0) AND NOT Trigger
(1) THEN Draw_Character_Selection Selection%%
IF Trigger
(1) THEN Draw_Difficulty_Selection Selection%%
IF NOT StartFlag%%
THEN ScrollY%
= 320: StartFlag%%
= TRUE
_PUTIMAGE (0, ScrollY%
), Layer
(TEMP_1
), Layer
(MIX
) ScrollY% = ScrollY% - 1
IF ScrollY%
<= -500 THEN ScrollY%
= 220
SUB Draw_Character_Selection
(who%%
) _PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (0, 448)-STEP(319, 223) _PUTIMAGE (16, 400)-STEP(605, 47), Layer
(START_SCREENS
), Layer
(MIX
), (320, 448)-STEP(303, 23) _PUTIMAGE (112, 32)-STEP(431, 47), Layer
(START_SCREENS
), Layer
(MIX
), (320, 472)-STEP(215, 23) KB_Print 304, 416, "Select Character and Press Start", 0, CENTER
KB_Print 312, 48, a$, 0, CENTER
SUB Draw_Difficulty_Selection
(What%%
) _PUTIMAGE (112, 176)-STEP(431, 127), Layer
(START_SCREENS
), Layer
(MIX
), (320, 496)-STEP(215, 63) KB_Print 128, 192, "Difficulty Days Score", 0, LEFT
KB_Print 128, 224, " Easy 900 x.5", 0, LEFT
KB_Print 128, 240, " Normal 600 x1", 0, LEFT
KB_Print 128, 256, " Hard 400 x2", 0, LEFT
KB_Print 128, 272, " Impossible? 200 x4", 0, LEFT
Display_Selection_Arrow 128, 222 + (16 * What%%)
'-------------Setup Credit scroll----------------
KB_Print 72, 16, "King's Bounty Designed By:", 0, LEFT
KB_Print 72, 32, " Jon Van Caneghem", 0, LEFT
KB_Print 72, 64, "Programed By:", 0, LEFT
KB_Print 72, 80, " Andrew Caldwell", 0, LEFT
KB_Print 72, 112, "Programed By:", 0, LEFT
KB_Print 72, 128, " Mark Caldwell (no relation)", 0, LEFT
KB_Print 72, 144, " Douglas Grounds", 0, LEFT
KB_Print 72, 160, " Jill Bagley", 0, LEFT
KB_Print 72, 192, "Graphics By:", 0, LEFT
KB_Print 72, 208, " Bonita Long-Hemsath", 0, LEFT
KB_Print 72, 224, " Kenneth L. Mayfield", 0, LEFT
KB_Print 296, 256, "Copyright 1990,1991", 0, CENTER
KB_Print 296, 272, "New World Computing, Inc", 0, CENTER
KB_Print 296, 288, "All Rights Reserved", 0, CENTER
KB_Print 72, 320, "QB64 Clone Programed By:", 0, LEFT
KB_Print 72, 336, " Cobalt (aka David)", 0, LEFT
KB_Print 72, 368, "Music By:", 0, LEFT
KB_Print 72, 384, " Atom Music Audio-'Dark Star'", 0, LEFT
KB_Print 296, 416, "QB64 Source Copyright 2019", 0, CENTER
KB_Print 296, 432, "UniKorn ProDucKions", 0, CENTER
KB_Print 296, 448, "All Rights Reserved", 0, CENTER
'------------------------------------------------
'place credit text on temp layer for scroll
SUB Selection_Background_Setup
'setup background color for character selection screen
'-----------------------------------------------------
IF Tick!
>= .22 AND Trigger
(0) = FALSE
THEN Fade_In_UKP_Logo: Trigger
(0) = TRUE
IF Tick!
>= 6.14 AND Trigger
(1) = FALSE
THEN Fade_Out_UKP_Logo: Trigger
(1) = TRUE
IF Tick!
>= 10.65 AND Trigger
(2) = FALSE
THEN Fade_In_EA_Logo: Trigger
(2) = TRUE
IF Tick!
>= 16.46 AND Trigger
(3) = FALSE
THEN Fade_Out_EA_Logo: Trigger
(3) = TRUE
IF Tick!
>= 20.88 AND Trigger
(4) = FALSE
THEN Fade_In_NWC_Planet: Trigger
(4) = TRUE
IF Tick!
>= 26.81 AND Trigger
(5) = FALSE
THEN Drop_NWC_Sword:
_PUTIMAGE , Layer
(0), Layer
(TEMP_2
): Trigger
(5) = TRUE
IF Tick!
>= 28.83 AND Trigger
(6) = FALSE
THEN Raise_NWC_Logo:
_PUTIMAGE , Layer
(0), Layer
(TEMP_2
): Trigger
(6) = TRUE
In_Sparkle%% = 5
Sparkle x%, y%, s%
In_Sparkle%% = In_Sparkle%% - 1
Trigger(7) = TRUE: Trigger(8) = TRUE
_PUTIMAGE , Layer
(0), Layer
(TEMP_3
): ClearLayer
23 Fade_Out_NWC_Logo
IF Tick!
> 41.0 AND Trigger
(9) = FALSE
THEN Fade_In_KB_Title: Trigger
(9) = TRUE
IF Tick!
> 64.5 AND Trigger
(10) = FALSE
THEN Fade_Out_KB_Title: Trigger
(10) = TRUE
SUB Fade_In_Character_Screen
_PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (0, 448)-STEP(319, 223)
STATIC Sparkle_Frame%%
, Count_up%%
'large sparkle
_PUTIMAGE (X%
, Y%
), Layer
(START_SCREENS
), Layer
(MIX
), (136 - Sparkle_Frame%%
* 26, 420)-STEP(26, 26) _PUTIMAGE (X%
, Y%
), Layer
(START_SCREENS
), Layer
(MIX
), (194 - Sparkle_Frame%%
* 15, 433)-STEP(14, 14) IF NOT Count_up%%
THEN Sparkle_Frame%%
= Sparkle_Frame%%
+ 1 ELSE Sparkle_Frame%%
= Sparkle_Frame%%
- 1 IF Sparkle_Frame%%
= 2 THEN Count_up%%
= TRUE
IF Sparkle_Frame%%
= 0 THEN Count_up%%
= FALSE
_PUTIMAGE (0, 0), Layer
(START_SCREENS
), Layer
(MIX
), (0, 672)-STEP(639, 479)
_PUTIMAGE (0, 0), Layer
(START_SCREENS
), Layer
(MIX
), (0, 672)-STEP(639, 479)
_PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (0, 0)-STEP(319, 223)
_PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (0, 0)-STEP(319, 223)
_PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (320, 0)-STEP(319, 223)
_PUTIMAGE (376 - Xo%
, -400 + Yo%
)-STEP(141, 395), Layer
(START_SCREENS
), Layer
(MIX
), (0, 250)-STEP(70, 197) _PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (320, 0)-STEP(319, 223) Xo% = Xo% + 2
Yo% = Yo% + 8
_PUTIMAGE (31, 580 - Yo%
)-STEP(260, 102), Layer
(START_SCREENS
), Layer
(MIX
), (104, 250)-STEP(130, 51) _PUTIMAGE (294, 614 - Yo%
)-STEP(321, 53), Layer
(START_SCREENS
), Layer
(MIX
), (104, 302)-STEP(161, 27) Yo% = Yo% + 6
_PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (320, 224)-STEP(319, 223)
_PUTIMAGE (0, 16)-STEP(639, 447), Layer
(START_SCREENS
), Layer
(MIX
), (320, 224)-STEP(319, 223)
SUB KB_Print
(x%
, y%
, Txt$
, Null%%
, Aline%%
) Xo% = 0: Yo% = 672 'sheet offsets
IF Aline%%
= RIGHT
THEN Ax%
= LEN(Txt$
) * 16: x%
= x%
- Ax%
IF Aline%%
= CENTER
THEN Ax%
= LEN(Txt$
) * 8: x%
= x%
- Ax%
_PUTIMAGE (x%
+ (i~%%
* 16), y%
)-STEP(15, 15), Layer
(START_SCREENS
), Layer
(MIX
), (Xo%
+ So%
, Yo%
)-STEP(7, 7)
SUB KB_Print_Wrap
(X%
, Y%
, txt$
, MaxX%
) 'max number of characters with Wrap max of MaxX%%
Finished%% = FALSE
Mx%% = SMx%% 'restore Mx to Starting Mx(Mx= Max X length in pixels)
' text is nice enough to land on a space
j%% = j%% + 1
Lines
(j%%
) = LEFT$(txt$
, Mx%%
) txt$
= MID$(txt$
, Mx%%
+ 1) ' back track to find first space
Found%% = FALSE
j%% = j%% + 1 'set to next line
Lines
(j%%
) = MID$(txt$
, 1, Mx%%
) txt$
= MID$(txt$
, Mx%%
+ 1) 'reduce string length
'print wraped lines
KB_Print X%, Y%, Lines(I%%), 0, LEFT
Y% = Y% + 16
Result$ = Result$ + "K"
Special_K_Value = Result$
SUB Display_Selection_Arrow
(X%
, Y%
) _PUTIMAGE (X%
, Y%
)-STEP(23, 15), Layer
(START_SCREENS
), Layer
(MIX
), (388 + G.Window_Animation
* 12, 216)-STEP(11, 7)