2 * This program is free software: you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License as published by
4 * the Free Software Foundation, either version 3 of the License, or
5 * (at your option) any later version.
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
12 * You should have received a copy of the GNU General Public License
13 * along with this program. If not, see <http://www.gnu.org/licenses/>.
25 #include "gameglobals.h"
29 static void scrDrawCrashMask (SDL_Surface
*frame
, int phase
) {
37 SDL_FillRect(frame
, &dst
, palette
[0]);
38 } else if (phase
< 5) {
39 for (int y
= 0; y
< 20; ++y
) {
40 for (int x
= 0; x
< 16; ++x
) {
41 blitSurface(frame
, x
*20, y
*10, banks
[CONST_BANK_FG_TILES
].spr
[16-phase
][0]);
48 static void frmTitleDraw (SDL_Surface
*frame
) {
49 blitSurface(frame
, 0, 0, backs
[0]);
50 scrDrawCrashMask(frame
, vmGVars
[GVAR_TITLE_PHASE
]);
52 levelDrawSpriteLayers(frame
, 0, 0, 320, 200);
61 if (vmGVars
[GVAR_MOUSE_HIDDEN
] == 0) {
62 int cur
= vmGVars
[GVAR_MOUSE_CURSOR
];
64 if (cur
>= 0 && cur
< banks
[256].count
) {
65 blitSurface(frame
, vmGVars
[GVAR_MOUSE_X
], vmGVars
[GVAR_MOUSE_Y
], banks
[256].spr
[cur
][0]);
71 static void frmTitleKey (SDL_KeyboardEvent
*key
) {
72 if (key
->type
== SDL_KEYDOWN
) {
73 switch (key
->keysym
.sym
) {
74 case SDLK_ESCAPE
: vmGVars
[GVAR_KEY_ESCAPE
] = 1; break;
75 case SDLK_F12
: vmGVars
[GVAR_KEY_QUIT
] = 1; break;
76 case SDLK_SPACE
: case SDLK_RETURN
: vmGVars
[GVAR_KEY_START
] = 1; break;
80 switch (key
->keysym
.sym
) {
81 case SDLK_LEFT
: case SDLK_KP4
: vmGVars
[GVAR_KEY_LEFT
] = (key
->type
== SDL_KEYDOWN
); break;
82 case SDLK_RIGHT
: case SDLK_KP6
: vmGVars
[GVAR_KEY_RIGHT
] = (key
->type
== SDL_KEYDOWN
); break;
83 case SDLK_UP
: case SDLK_KP8
: vmGVars
[GVAR_KEY_UP
] = (key
->type
== SDL_KEYDOWN
); break;
84 case SDLK_DOWN
: case SDLK_KP2
: vmGVars
[GVAR_KEY_DOWN
] = (key
->type
== SDL_KEYDOWN
); break;
91 void setMainLoopTitle (void) {
92 frameCB
= frmTitleDraw
;