non-working demo feature
[awish.git] / src / title.c
blob202c367b124d054ad3a3f74dd45e120b0e08197a
1 /*
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/>.
15 #include <stdio.h>
16 #include <stdlib.h>
17 #include <string.h>
19 #include "title.h"
21 #include "resfile.h"
22 #include "video.h"
23 #include "mainloop.h"
24 #include "vm.h"
25 #include "gameglobals.h"
26 #include "game.h"
30 static void scrDrawCrashMask (SDL_Surface *frame, int phase) {
31 if (phase <= 0) {
32 SDL_Rect dst;
34 dst.x = 0;
35 dst.y = 0;
36 dst.w = frame->w;
37 dst.h = frame->h;
38 SDL_FillRect(frame, &dst, palette[0]);
39 } else if (phase < 5) {
40 for (int y = 0; y < 20; ++y) {
41 for (int x = 0; x < 16; ++x) {
42 blitSurface2x(frame, x*20, y*10, banks[CONST_BANK_FG_TILES].spr[16-phase][0]);
49 static void frmTitleDraw (SDL_Surface *frame) {
50 blitSurface(frame, 0, 0, backs[0]);
51 scrDrawCrashMask(frame, vmGVars[GVAR_TITLE_PHASE]);
55 static void frmTitleKey (SDL_KeyboardEvent *key) {
56 if (key->type == SDL_KEYDOWN) {
57 switch (key->keysym.sym) {
58 case SDLK_ESCAPE:
59 case SDLK_F12:
60 vmGVars[GVAR_KEY_QUIT] = 1;
61 break;
62 case SDLK_SPACE:
63 case SDLK_RETURN:
64 vmGVars[GVAR_KEY_START] = 1;
65 break;
66 default: ;
72 void setMainLoopTitle (void) {
73 frameCB = frmTitleDraw;
74 keyCB = frmTitleKey;
75 beforeVMCB = NULL;
76 vmMapGetCB = NULL;
77 vmMapSetCB = NULL;
78 vmPaused = 0;