Merge lp:~godezinc/damn-monkey/introduction into lp:damn-monkey

Proposed by Vincent PEYROUSE (GodezInc)
Status: Merged
Approved by: Fabien LOISON
Approved revision: 31
Merged at revision: 31
Proposed branch: lp:~godezinc/damn-monkey/introduction
Merge into: lp:damn-monkey
Diff against target: 264 lines (+119/-43)
8 files modified
pixmaps/barrel.sprite (+1/-1)
pixmaps/damnmonkey.sprite (+4/-4)
pixmaps/help.sprite (+1/-1)
pixmaps/jumpman.sprite (+1/-1)
pixmaps/lady.sprite (+1/-1)
src/game.c (+6/-8)
src/levels/level_01.c (+104/-27)
src/levels/level_01.h (+1/-0)
To merge this branch: bzr merge lp:~godezinc/damn-monkey/introduction
Reviewer Review Type Date Requested Status
Matthis FRENAY Pending
Review via email: mp+64060@code.launchpad.net
To post a comment you must log in.
32. By Vincent PEYROUSE (GodezInc)

* Introduction screen improved

33. By Vincent PEYROUSE (GodezInc)

* Introduction screen fixed (no more level screen shown before intro)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'pixmaps/barrel.sprite'
2--- pixmaps/barrel.sprite 2011-06-09 15:19:59 +0000
3+++ pixmaps/barrel.sprite 2011-06-13 13:08:40 +0000
4@@ -2,4 +2,4 @@
5 walk-right ; 0 ; 0 ; 24 ; 20 ; 4 ; 100 ;
6 walk-left ; 0 ; 20 ; 24 ; 20 ; 4 ; 100 ;
7 walk-ladder ; 0 ; 41 ; 34 ; 20 ; 2 ; 100 ;
8-custom ; 0 ; 59 ; 38 ; 67 ; 1 ; 100 ;
9+custom ; 0 ; 59 ; 38 ; 67 ; 1 ; 100 ;
10\ No newline at end of file
11
12=== modified file 'pixmaps/damnmonkey.sprite'
13--- pixmaps/damnmonkey.sprite 2011-06-09 15:19:59 +0000
14+++ pixmaps/damnmonkey.sprite 2011-06-13 13:08:40 +0000
15@@ -1,4 +1,4 @@
16-#Movement ; x ; y ; w ; h ; numb. img ; delay ms ;
17-walk-ladder ; 0 ; 163 ; 95 ; 90 ; 2 ; 200 ;
18-throw-barrel ; 0 ; 81 ; 110 ; 82 ; 3 ; 220 ;
19-custom ; 0 ; 0 ; 87 ; 81 ; 1 ; 100 ;
20+#Movement ; x ; y ; w ; h ; numb. img ; delay ms ;
21+walk-ladder ; 0 ; 163 ; 95 ; 90 ; 2 ; 200 ;
22+throw-barrel ; 0 ; 81 ; 110 ; 82 ; 3 ; 220 ;
23+custom ; 0 ; 0 ; 87 ; 81 ; 1 ; 100 ;
24\ No newline at end of file
25
26=== modified file 'pixmaps/help.sprite'
27--- pixmaps/help.sprite 2011-06-09 15:19:59 +0000
28+++ pixmaps/help.sprite 2011-06-13 13:08:40 +0000
29@@ -1,2 +1,2 @@
30 #Movement ; x ; y ; w ; h ; numb. img ; delay ms ;
31-custom ; 0 ; 0 ; 54 ; 36 ; 2 ; 1500 ;
32+custom ; 0 ; 0 ; 54 ; 36 ; 2 ; 1500 ;
33\ No newline at end of file
34
35=== modified file 'pixmaps/jumpman.sprite'
36--- pixmaps/jumpman.sprite 2011-06-09 15:19:59 +0000
37+++ pixmaps/jumpman.sprite 2011-06-13 13:08:40 +0000
38@@ -7,4 +7,4 @@
39 jump-left ; 54 ; 32 ; 29 ; 31 ; 1 ; 0 ;
40 ladder ; 24 ; 64 ; 23 ; 31 ; 1 ; 0 ;
41 walk-ladder ; 0 ; 64 ; 23 ; 31 ; 2 ; 120 ;
42-dead ; 0 ; 96 ; 34 ; 34 ; 4 ; 100 ;
43+dead ; 0 ; 96 ; 34 ; 34 ; 4 ; 100 ;
44\ No newline at end of file
45
46=== modified file 'pixmaps/lady.sprite'
47--- pixmaps/lady.sprite 2011-06-09 15:19:59 +0000
48+++ pixmaps/lady.sprite 2011-06-13 13:08:40 +0000
49@@ -1,2 +1,2 @@
50 #Movement ; x ; y ; w ; h ; numb. img ; delay ms ;
51-ask-help ; 0 ; 0 ; 40 ; 42 ; 2 ; 1000 ;
52+ask-help ; 0 ; 0 ; 40 ; 42 ; 2 ; 1000 ;
53\ No newline at end of file
54
55=== added file 'pixmaps/level_01_begin.png'
56Binary files pixmaps/level_01_begin.png 1970-01-01 00:00:00 +0000 and pixmaps/level_01_begin.png 2011-06-13 13:08:40 +0000 differ
57=== modified file 'src/game.c'
58--- src/game.c 2011-06-09 15:19:59 +0000
59+++ src/game.c 2011-06-13 13:08:40 +0000
60@@ -63,7 +63,7 @@
61 GAME_SPEED = 0;
62 GAME_STATE = GAME_STATE_PLAYING;
63
64- while (GAME_STATE != GAME_STATE_NONE && GAME_STATE != GAME_STATE_OVER)
65+ while (GAME_STATE != GAME_STATE_NONE && GAME_STATE != GAME_STATE_OVER && GAME_SPEED < 4)
66 {
67 //Launch the level
68 switch (current_level)
69@@ -85,16 +85,11 @@
70 }
71 break;
72 case GAME_STATE_LEVEL_COMPLETED:
73- GAME_SPEED += 1;
74- if (GAME_SPEED >= 4)
75- {
76- current_level +=1;
77- GAME_SPEED = 0;
78- }
79 if (current_level > levels_count)
80 {
81 current_level = 1; //Restart with the first level;
82 }
83+ GAME_SPEED += 1;
84 break;
85 case GAME_STATE_NONE:
86 break;
87@@ -112,7 +107,10 @@
88 deref_object(&LAYER_MENU, bg_refresh);
89 SDL_Delay(20);
90 free_dm_surface(bg);
91-
92+ }
93+ else
94+ {
95+ //TODO : Make a success screen
96 }
97 //End of the game
98 GAME_STATE = GAME_STATE_NONE;
99
100=== modified file 'src/levels/level_01.c'
101--- src/levels/level_01.c 2011-06-09 15:19:59 +0000
102+++ src/levels/level_01.c 2011-06-13 13:08:40 +0000
103@@ -327,26 +327,6 @@
104 */
105 void level_01(SDL_Surface *screen)
106 {
107- //Load the background
108- DM_Surface *level_surface = load_resource_as_dm_surface("level_01.png");
109- int level_surface_refresh = ref_object(
110- &LAYER_BG,
111- level_surface,
112- surface_refresh_cb
113- );
114-
115- //Load Lady and help sprites
116- DM_Sprite *lady = new_sprite("lady");
117- lady->current_mov = SPRITE_ASK_HELP;
118- lady->screen_pos.x = 300;
119- lady->screen_pos.y = 48;
120- int lady_refresh = ref_object(&LAYER_ACTIVE, lady, sprite_cb);
121- DM_Sprite *help = new_sprite("help");
122- help->current_mov = SPRITE_CUSTOM;
123- help->screen_pos.x = 340;
124- help->screen_pos.y = 10;
125- int help_refresh = ref_object(&LAYER_ACTIVE, help, sprite_cb);
126-
127 //Load the level infos (collides,...)
128 DM_Map *map = load_map_infos("level_01");
129
130@@ -393,14 +373,36 @@
131 BARRELS->damnmonkey->screen_pos.x = 55;
132 BARRELS->damnmonkey->screen_pos.y = 94;
133 BARRELS->damnmonkey->current_mov = SPRITE_CUSTOM;
134+
135+ //Level launch
136+ barrel_init(screen);
137+ introduction(screen);
138+
139+ //Load the background
140+ DM_Surface *level_surface = load_resource_as_dm_surface("level_01.png");
141+ int level_surface_refresh = ref_object(
142+ &LAYER_BG,
143+ level_surface,
144+ surface_refresh_cb
145+ );
146+
147+ //Load Lady and help sprites and show Damn Monkey
148+ DM_Sprite *lady = new_sprite("lady");
149+ lady->current_mov = SPRITE_ASK_HELP;
150+ lady->screen_pos.x = 300;
151+ lady->screen_pos.y = 48;
152+ int lady_refresh = ref_object(&LAYER_ACTIVE, lady, sprite_cb);
153+ DM_Sprite *help = new_sprite("help");
154+ help->current_mov = SPRITE_CUSTOM;
155+ help->screen_pos.x = 340;
156+ help->screen_pos.y = 10;
157+ int help_refresh = ref_object(&LAYER_ACTIVE, help, sprite_cb);
158 int damnmonkey_refresh = ref_object(
159- &LAYER_ACTIVE,
160- BARRELS->damnmonkey,
161- sprite_cb
162- );
163-
164- //GAME_STATE gestion
165- barrel_init(screen);
166+ &LAYER_ACTIVE,
167+ BARRELS->damnmonkey,
168+ sprite_cb
169+ );
170+
171 lets_play_yeah(screen, map);
172 //Dereference objects and free the memory
173 barrel_destroy();
174@@ -427,3 +429,78 @@
175 }
176
177
178+/**
179+ * \fn void introduction(SDL_Screen *surface)
180+ * \brief Show the level intro.
181+ *
182+ * Show a introduction screen before the level beginning
183+ *
184+ * \param screen The main surface (called screen in the main() function).
185+ */
186+void introduction(SDL_Surface *screen)
187+{
188+ DM_Surface *bg = load_resource_as_dm_surface("level_01_begin.png");
189+ int bg_refresh = ref_object(&LAYER_FG, bg, surface_refresh_cb);
190+
191+ DM_Surface *title = malloc(sizeof(DM_Surface));
192+ title->surface = str_to_surface("font_main.png", "LEVEL 01");
193+ title->rect.w = title->surface->w;
194+ title->rect.h = title->surface->h;
195+ title->rect.x = 75;
196+ title->rect.y = 450;
197+ int title_refresh = ref_object(&LAYER_FG, title, surface_refresh_cb);
198+
199+ DM_Surface *level = malloc(sizeof(DM_Surface));
200+ char buffer[5];
201+ sprintf(buffer, "%i m", 25 * (GAME_SPEED + 1));
202+ level->surface = str_to_surface("font_main.png", buffer);
203+ level->rect.w = level->surface->w;
204+ level->rect.h = level->surface->h;
205+ level->rect.x = 100;
206+ level->rect.y = 500;
207+ int level_refresh = ref_object(&LAYER_FG, level, surface_refresh_cb);
208+
209+ DM_Sprite *damnmonkey = new_sprite("damnmonkey");
210+ damnmonkey->current_mov = SPRITE_WALK_LADDER;
211+ damnmonkey->screen_pos.x = 400;
212+ damnmonkey->screen_pos.y = 601;
213+ int damnmonkey_refresh = ref_object(&LAYER_FG, damnmonkey, sprite_cb);
214+ SDL_Delay(1000);
215+ while (damnmonkey->screen_pos.y >= 53)
216+ {
217+ damnmonkey->screen_pos.y -= 2;
218+ SDL_Delay(20);
219+ }
220+ damnmonkey->current_mov = SPRITE_CUSTOM;
221+ damnmonkey->screen_pos.x = 470;
222+
223+ DM_Sprite *lady = new_sprite("lady");
224+ lady->current_mov = SPRITE_ASK_HELP;
225+ lady->screen_pos.x = 570;
226+ lady->screen_pos.y = 90;
227+ int lady_refresh = ref_object(&LAYER_FG, lady, sprite_cb);
228+
229+ DM_Sprite *help = new_sprite("help");
230+ help->current_mov = SPRITE_CUSTOM;
231+ help->screen_pos.x = 610;
232+ help->screen_pos.y = 45;
233+ int help_refresh = ref_object(&LAYER_FG, help, sprite_cb);
234+
235+ SDL_Delay(2000);
236+ //Derefence objects and free the memory
237+ deref_object(&LAYER_FG, help_refresh);
238+ deref_object(&LAYER_FG, lady_refresh);
239+ deref_object(&LAYER_FG, damnmonkey_refresh);
240+ deref_object(&LAYER_FG, level_refresh);
241+ deref_object(&LAYER_FG, title_refresh);
242+ deref_object(&LAYER_FG, bg_refresh);
243+ SDL_Delay(20);
244+ free_sprite(help);
245+ free_sprite(lady);
246+ free_sprite(damnmonkey);
247+ free_dm_surface(level);
248+ free_dm_surface(title);
249+ free_dm_surface(bg);
250+}
251+
252+
253
254=== modified file 'src/levels/level_01.h'
255--- src/levels/level_01.h 2011-06-05 20:18:38 +0000
256+++ src/levels/level_01.h 2011-06-13 13:08:40 +0000
257@@ -113,6 +113,7 @@
258 int check_platform_orientation(DM_Collide *collide_point, DM_Map *map);
259 void free_dm_barrel(DM_Barrel *barrels);
260 void level_01(SDL_Surface *screen);
261+void introduction(SDL_Surface *screen);
262
263
264 #endif //LEVEL_01_H_INCLUDED

Subscribers

People subscribed via source and target branches