//main.cpp
---------
#SelectExpand
1#include "dec.h"
2
3
4
5int main
()
6{
7 init
();
8 while(!key[KEY_ESC
])
9 {
10
11 mainMenu
();
12
13 blit(buffer,
screen,
0,
0,
0,
0,
800,
600);
14
15 }
16 cleanUp
();
17
18
19
20return 0;
21}
22END_OF_MAIN()
//mainMenu.cpp
--------------
#SelectExpand
1#include "dec.h"
2
3/*Choices
4------------
5
61.) start game
7
82.) options
9
103.) instructions
11
124.) controls
13
145.) credits
15
16----------------
17
18*/
19
20unsigned short choice
;
21
22void checkChoice
();
23
24
25
26void mainMenu
()
27{
28 while(!key[KEY_ESC
])
29 {
30
31 mainMenu:
32
33 checkChoice
();
34
35 if( key[KEY_UP
] && menu
== 0)
36 {
37 menu
= 0;
38 while(key[KEY_UP
]){ rest(1); }
39 }
40 else if( key[KEY_DOWN
] && menu
== 5 )
41 {
42 menu
= 5;
43 while(key[KEY_DOWN
]) { rest(1); }
44 }
45 else if(key[KEY_DOWN
] )
46 {
47 menu
++;
48 while(key[KEY_DOWN
]){ rest(1); }
49 }
50 else if(key[KEY_UP
])
51 {
52 menu--
;
53 while(key[KEY_UP
]){ rest(1); }
54 }
55
56
57
58
59
60 switch(menu
)
61 {
62 case 0: clear_bitmap(buffer
);
63 blit(start,buffer,
0,
0,
0,
0,
800,
600);
64 if( key[KEY_ENTER
] ){ choice
= 2; }
65 if( samplePlayed
== true ){ play_sample(blip,
255,
0,
1000,
0); samplePlayed
= false; }
66 break;
67
68 case 1: clear_bitmap(buffer
);
69 blit(options,buffer,
0,
0,
0,
0,
800,
600);
70 if( key[KEY_ENTER
] ){ choice
= 3;}
71 if( samplePlayed
== false ){play_sample(blip,
255,
0,
1000,
0); samplePlayed
= true; }
72 break;
73
74 case 2: clear_bitmap(buffer
);
75 blit(instructions,buffer,
0,
0,
0,
0,
800,
600);
76 if( samplePlayed
== true ){ play_sample(blip,
255,
0,
1000,
0); samplePlayed
= false; }
77 break;
78
79 case 3: clear_bitmap(buffer
);
80 blit(controls,buffer,
0,
0,
0,
0,
800,
600);
81 if( samplePlayed
== false ){ play_sample(blip,
255,
0,
1000,
0); samplePlayed
= true; }
82 break;
83
84 case 4: clear_bitmap(buffer
);
85 blit(credits,buffer,
0,
0,
0,
0,
800,
600);
86 if( samplePlayed
== true ){ play_sample(blip,
255,
0,
1000,
0); samplePlayed
= false; }
87 break;
88
89 case 5: clear_bitmap(buffer
);
90 blit(quit,buffer,
0,
0,
0,
0,
800,
600);
91 if( samplePlayed
== false ){ play_sample(blip,
255,
0,
1000,
0); samplePlayed
= true; }
92 if( key[KEY_ENTER
] ){ play_sample(beep,
255,
0,
1000,
0); rest(100); exit(0); }
93 break;
94 }
95
96 blit(buffer,
screen,
0,
0,
0,
0,
800,
600);
97 }
98
99
100
101
102
103
104
105
106
107
108}
109
110
111void checkChoice
()
112{
113 switch(choice
)
114 {
115
116 case 1:
117
118 mainMenu
();
119 break;
120
121
122 case 2:
123
124 classicGame
();
125 break;
126
127 case 3:
128
129 optionsMenu
();
130 break;
131 }
132
133}
//options.cpp
//-------------
#SelectExpand
1#include "dec.h"
2
3
4
5
6unsigned int opMenu
= 0;
7
8void drawOpMenu
();
9
10
11
12unsigned short opChoice
= 0;
13
14void checkOpChoice
();
15
16
17
18
19
20void optionsMenu
()
21{
22
23
24
25 while(!key[KEY_ESC
])
26 {
27
28 checkOpChoice
();
29
30 graphics->setFont
(guiFont
);
31 graphics->_beginDraw
();
32
33
34
35
36 if(opMenu
== 0 && key[KEY_UP
])
37 {
38 opMenu
= 0;
39 while(key[KEY_UP
]){ rest(1);}
40 }
41 else if(key[KEY_DOWN
])
42 {
43 opMenu
++;
44 while(key[KEY_DOWN
]){ rest(1); }
45 }
46 else if(key[KEY_UP
])
47 {
48 opMenu--
;
49 while(key[KEY_UP
]){ rest(1); }
50 }
51 else if(opMenu
== 4 && key[KEY_DOWN
])
52 {
53 opMenu
= 4;
54 while(key[KEY_DOWN
]){ rest(1); }
55 }
56
57
58
59 switch(opMenu
)
60 {
61 case 0:
62 clear_bitmap(buffer
);
63 drawOpMenu
();
64 graphics->drawText
("MUSIC VOLUME: ",
19,
100,Graphics::LEFT
);
65 break;
66
67 case 1:
68 clear_bitmap(buffer
);
69 drawOpMenu
();
70 graphics->drawText
("SOUND FX VOLUME: ",
19,
160,Graphics::LEFT
);
71 break;
72
73 case 2:
74 clear_bitmap(buffer
);
75 drawOpMenu
();
76 graphics->drawText
("LIVES: ",
19,
220);
77 break;
78
79 case 3:
80 clear_bitmap(buffer
);
81 drawOpMenu
();
82 graphics->drawText
("MUSIC:",
19,
280);
83 break;
84
85 case 4:
86 clear_bitmap(buffer
);
87 drawOpMenu
();
88 graphics->drawText
("BACK TO MAIN",
261+(.
5),
500);
89 if(key[KEY_ENTER
]){ opChoice
= 1; }
90 break;
91
92 }
93
94 graphics->_endDraw
();
95 blit(buffer,
screen,
0,
0,
0,
0,
800,
600);
96
97 }
98
99mainMenu
();
100
101}
102
103
104
105
106
107
108
109void drawOpMenu
()
110{
111 graphics->drawText
("music volume: ",
20,
100,Graphics::LEFT
);
112 graphics->drawText
("sound fx Volume: ",
20,
160,Graphics::LEFT
);
113 graphics->drawText
("lives: ",
20,
220,Graphics::LEFT
);
114 graphics->drawText
("music: ",
20,
280,Graphics::LEFT
);
115 graphics->drawText
("back to main",
260,
500,Graphics::LEFT
);
116}
117
118void checkOpChoice
()
119{
120 if(opChoice
== 1)
121 {
122 clear_bitmap(buffer
);
123 mainMenu
();
124 }
125}
ok, im in options menu, and when the user selects back to main, it goes back to mainMenu()
so i use some variable, cause someone says thatcalling functions directly from other functions, im gonna run ou tof stack memory
so i tried this
but when i hit back to main, it just freezes
i want to be able to when the suer hits back to main, it just goes back to mainMenu() cleanly, and not with all these probs