[Final Release] Toggles and other games
Onewing

I won't talk as long as I did last time. I've been working on several titles and I finally think they are ready for the public. One game is made using allegro, the other two were made in one month using the Game Maker. I'm posting these games on several websites that I visit and hope for about 500 people to at least look at the post and 50 people to play the game.

The highscore tables have been cleared for Toggles. This is the first site I'm posting to, so get your highscores while you have the advantage!

==============================TOGGLES================================
http://comp.uark.edu/~spsilve/games/toggles/tog_ss.JPG
http://comp.uark.edu/~spsilve/toggles/tog4.JPG
Windows binary and source code: Toggles
Linux source code (still some bugs, but patches are being work on as we speak. However, you can still compile and play the game with this version, given you have the right libraries. Just see the readme included): Toggles Linux Version 1.0.13

Don't forget to review it in the depot. I am curious as to what you guys think. :)

===============================Mymaze================================
I briefly talked about this game before on the forums.
http://comp.uark.edu/~spsilve/games/mymaze/title.jpg
http://comp.uark.edu/~spsilve/games/mymaze/maze_ss.JPG
http://comp.uark.edu/~spsilve/games/maze1.JPG
What's New:

  • 50 complete mazes, plus 3 secretly hidden mazes

  • Non-linearity, you don't have to go through the first 10 levels to get to the next.

  • Save game and load game functionality. You can still save/load states with F5/F6 at any time in the game.

  • A silly, wrap-around story.

  • Item collection.

  • Music from battletoads. :)

Windows binary: Mymaze

==============================1945-Clone==================================
Yes, it's already been done a million times. Still, here's my rendition.
http://comp.uark.edu/~spsilve/games/1945/1945s1.JPG
http://comp.uark.edu/~spsilve/games/1945/1945s2.JPG
http://comp.uark.edu/~spsilve/games/1945/1945s3.JPG
Windows binary: 1945

miran

Downloading Toggles now, but it's really slow, like 10kB/s...

Kikaru

Downloading Toggels! Yay! :D

miran

After much pain and suffering it compiled (the pain and suffering was caused by alogg). When I run it, I get two intro screens, then this:

http://www.allegro.cc/files/attachment/590341

EDIT: Ooh, I noticed the zip contains a prebuilt Linux binary. It doesn't work of course:

ERROR:  Failed to initialize allegro library.  Terminating program.
REPORT:  Unable to find a usable VT

EDIT2: I noticed one more thing. The obj directory is full of .o files. You MUST NOT include them in the final release!

Onewing
Quote:

Ooh, I noticed the zip contains a prebuilt Linux binary.

Crap, I did a "make clean" on the source code on the "[Linux] Last bit of help..." thread but not on the package linked above. Sorry, going to fix it right away!

Kikaru

Wow... Toggles is really cool now. :o

Onewing
Quote:

Toggles is really cool now.

Heh, guess it's gone through a few face lifts, eh? :)

@miran: Okay, I updated the final release to not have the prebuilt binary and removed the .o files from the obj/static directory. I also added vortec.bmp to the data images. Because you probably don't want to reload all the data, I made this quick zip file that includes the source and include files and the vortec.bmp file (put this in data/images). Hope this helps: Quick fix.

miran

It still doesn't work.

The problem is in convert_to_backslash() which doesn't do what it's supposed to do and corrupts the input string by writing over the trailing \0. But why do you even need to write such silly functions? Why is Allegro's own fix_filename_slashes() not good enough for you? Or any of the other file and string manipulation functions in Allegro? Such as for example

and several others. Did you even know that these functions exist? Did you even RTFM?

Onewing
Quote:

Did you even know that these functions exist?

No. I forgot that anything I think of has already been done.

Quote:

Did you even RTFM?

I often think of allegro as a graphics library only, so I forget has some very useful things for common problems like this as well. But, if it's any consolation, I had the allegro manual open pretty much through the entire development of the game.

Anyway, took out my convert_to_backslash quick hack and put the easy to use fix_filename_slashes(char*) in instead. From what I can tell, it just updates the string sent to it, so I hope I used it right (another blind test). I've updated the Quick Fix link above and the linux source on the OP. For reference, here's the Quick Fix link again.

miran

The new version crashes without warning:

Shutting down Allegro due to signal #11
Segmentation fault

My guess is that you're using the function the wrong way. I think that the manual should be updated on that because I don't understand it either. The description of the function says that it returns a copy of the modified string, but the example completely discards this copy, thus creating a memory leak. This shouldn't cause a crash though...

EDIT:
This code works:

1BITMAP *load_bitmap_check(char *cpath, RGB *pal)
2{
3 BITMAP *bTest;
4 
5 char *temp = new char[1024];
6 ustrcpy(temp, cpath);
7 fix_filename_slashes(temp);
8 bTest = load_bitmap(temp, pal);
9 if(!bTest)
10 {
11 set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
12 
13 allegro_message("ERROR: Could not find/open '%s'", temp);
14 delete [] temp;
15 exit(0);
16 }
17 delete [] temp;
18 return bTest;
19}

Now the game works, although it seems a bit slow. I've only looked at the menus so far. I like the water effect on the cesspool. I assume that's a cesspool, I didn't read the story yet... :-X

EDIT2: The menus work great! Although it would be nice if it was possible to speed up the animation to make it more snappy. There's just one serious bug: the mouse cursor doesn't work. When you move the mouse, the desktop/hardware cursor flashes a bit, but when the mouse is still, no cursor is drawn. Also it'd be nice if the menus could be operated with the keyboard.

EDIT3: Woohoo, I'm in the credits! ;D

EDIT4: Btw, about that fix slashes thing, I'm not sure it's even necessary. I think think load_bitmap() and friends work just as well no matter which path separator you use...

Onewing
Quote:

although it seems a bit slow.

You can speed up the game via the config file, however that won't help the framerate much. There's a section in the config that lets you control how the water reacts and flows. Messing with some of these options might help the speed. I'm not the best programmer, so getting the water to work effectively with rest of the game was a chore in itself. That's why I included the graphics option under the option menu for different graphics modes.

Quote:

When you move the mouse, the desktop/hardware cursor flashes a bit, but when the mouse is still, no cursor is drawn.

There's a config option you can change to draw the hardware mouse instead of the mouse icon that I draw. That might work better.

Quote:

Also it'd be nice if the menus could be operated with the keyboard.

One quick trick you can do with the menus is press the right mouse button to make the menu items instantly fall into spot. Helps when you're navigating through the help menu. :)

Quote:

Woohoo, I'm in the credits!

Did you click you're name? ;D

Inphernic

Toggles:

The water effect seems to be a nice touch but monstrously inefficient. The graphics are quite bad, and the music blows as well. I played up to level 9 and quit. Overall: 4/10

Evert
Quote:

There's a config option you can change to draw the hardware mouse instead of the mouse icon that I draw. That might work better.

You should try to use the hardware mouse and if that doesn't work, fall back to drawing your own.

Onewing
Quote:

The water effect seems to be a nice touch but monstrously inefficient.

Thanks! By inefficient, do you mean it doesn't work right or takes too much away from the game (either gameplay or game speed).

Quote:

The graphics are quite bad, and the music blows as well.

Fair enough. Any advice on how it could be improved?

Quote:

I played up to level 9 and quit.

Thanks for playing that far. I figure, since you quit, gameplay was not fun?

Quote:

Overall: 4/10

Ah, so close to 5. Well, looks as if I've got much more to improve, eh? ;)

Quote:

You should try to use the hardware mouse and if that doesn't work, fall back to drawing your own.

I default to my own mouse because I feel it fits better with the environment of the game. At least I have the option for users to choose. :)

[EDIT]
BTW, I just pwned all your scores. Even managed to get the fourth combo, which I've never been able to do before!

Inphernic
Quote:

By inefficient, do you mean it doesn't work right or takes too much away from the game (either gameplay or game speed).

By inefficient I mean that I get 18 fps on the main menu. I've seen more impressive software effects run at amazing speeds back in the 15th century.

Quote:

Fair enough. Any advice on how it could be improved?

Graphics=
+ no specific style/consistency, just a glorios mishmash of everything
+ too much going on
+ jagged edge galore
+ colour abuse
+ gradient abuse
+ the font is awful
= no

Here's a 15 minute sketch (ok 401367280476 hrs in Paint srs):

http://www.duckiehorde.net/quickmockup.jpg

That's probably not how I would make it look like, it's just a quick'n'silly mockup. The point of its is just to show that clean/less is (usually) better.

Can't comment on the music: can't remember them, the game's already gone and I don't feel like re-downloading just for that. I might (later) if I have nothing to do.

Quote:

Thanks for playing that far. I figure, since you quit, gameplay was not fun?

Well, it wasn't dreadful nor enjoyable.. not just very interesting.

Quote:

Ah, so close to 5. Well, looks as if I've got much more to improve, eh?

To clarify the Arbitra-O-Meter scaling, 5 is average and 10 is absolutely perfect. On second thought, 4 might still be too high, but let's say it comes from effort. ;)

Kikaru

I actually think that sketch looks pretty nice...

Evert
Quote:

I default to my own mouse because I feel it fits better with the environment of the game.

What does that have to do with letting the OS draw it instead of doing it yourself?

Onewing
Quote:

I actually think that sketch looks pretty nice...

I do too, it's very elegant. The bottom time bar is my favorite part (with the shiny gradient). I was trying to go for as many bells and whistles as I could, kind of like a carnival game. But as Inphernic said, "clean/less is (usually) better."

Since I'm not going to spend much more time on this game (got other projects to work on), the only thing I can offer is that there are some things you can do to change it to your own theme. For example, I did the following in about 5 minutes (literally):

http://comp.uark.edu/~spsilve/games/toggles/tog_ss2.JPG

All you have to do is go to the data/images folder and change the "back.pcx" to whatever image of your liking, any size too. Next, in the config.ini, there's a "still_background" option. Set this to 1 so the background doesn't move. Lastly, you can change the rgb settings for the different gradients (you can also make it a solid color, because, like Inphernic said, I've got some gradient abuse.). You can't completely strip the graphics, but you do have a little room for your own personal likings. I'd like to see some body do a girly, pink version...hehe.

Anyway, thanks Inphernic for the advice. I'll try to implement some of those ideas more accurately for my next game. As for the speed of the water, I would just have to improve the algorithm, which of course, is obviously my fault.

Quote:

What does that have to do with letting the OS draw it instead of doing it yourself?

I'm assuming you mean using the set_mouse_cursor_bitmap() function and let the OS always handle the mouse drawing, right? Sorry, I didn't realize this was an option.

[edit] the above image is a JPEG, so its quality isn't perfect!

Evert
Quote:

I'm assuming you mean using the set_mouse_cursor_bitmap() function and let the OS always handle the mouse drawing, right?

Yes, of course.

Quote:

Sorry, I didn't realize this was an option.

Then what did you mean by hardware cursor? Allegro's manual makes a clear distinction between what it calls a hardware cursor (a custom cursor drawn by the operating system) and what it calls an operating system cursor (the default OS cursors).

Onewing
Quote:

Then what did you mean by hardware cursor?

If the mouse_icon is set to 1 in the config.ini file, it will call show_mouse(buffer). Otherwise, it will call draw_bitmap(buffer, bMouse, mouse_x, mouse_y) prior to drawing the buffer to the screen.

Quote:

Allegro's manual makes a clear distinction

Yes, I agree the manual makes plenty of clear distinctions, but you have to read that portion of the manual. I'll admit that I haven't read all of the manual, so I'm bound to slip up from time to time, even when the manual clearly explains what to do. ::)

Evert
Quote:

it will call show_mouse(buffer). Otherwise, it will call draw_bitmap(buffer, bMouse, mouse_x, mouse_y) prior to drawing the buffer to the screen.

Ok, but in neither case will you get a hardware cursor.
Aside, using show_mouse() on a memory bitmap defeats the purpose of having Allegro update the mouse sprite in the background (it won't be visible until you blit the buffer anyway), so if you're not using show_mouse() on a visible surface, you might as well draw it yourself.

Quote:

I agree the manual makes plenty of clear distinctions, but you have to read that portion of the manual.

Since you used the phrase 'hardware mouse', I assumed you had read that portion of the manual. It's fair enough that you don't read all of it (although it's highly recommended to at least look at the table of contents and the remarks at the start of each section).

Onewing
Quote:

using show_mouse() on a memory bitmap

I have a bad memory, I did use show_mouse(screen). If you downloaded the game, you can see it written in the code. But thanks for the advice anyway, makes it a little more clear.

Quote:

Since you used the phrase 'hardware mouse', I assumed you had read that portion of the manual.

My bad. Seriously. :)

BTW, I have a question for the users out there. Several people have mentioned slow downloads and I'm curious if it's having a hard time updating the high score registry as well. Has any body put in a high score and gotten an ERROR or the high score didn't show up on the table?

Kikaru

The on-line highscores work fine for me. I am numbers 2 and 3. Oh, and I got 5 combos in one stage! :D

Onewing
Quote:

Oh, and I got 5 combos in one stage!

No, no, no, silly. There's no 5th combo. To get combos, you have to get a certain amount of consecutive toggles in under 3 seconds. By consecutive toggles, I mean getting toggles to go down without bringing one up. The 4th combo, you have to get over 60 consecutive toggles in under 3 seconds and it's worth 1000 times whatever level you're in. So, getting the 4th combo in level 10 would be worth 10,000 points! There's a nice little music sound that happens when you get it too. :)

Kikaru

Oohhhhh... I never knew that happened...

Onewing

It's interesting how it's turned out so far. People from other sites seem to play 1945 or Mymaze and not Toggles while it seems like only Toggles is played here. Hmmm...

===========================Edit============================
Alright folks, I've added one last final update! This is for linux and windows users. Here's what's changed:

  • Fixed a bug that causes users names not to appear on the online high scores (when user entered a space in their name).

  • Improved the water-rippling algorithm. It's not a huge change, but it's better now. I measured the game running at 34FPS on my computer when there was the most rippling possible (in other words, 34FPS is as low as it would go). With the update, the lowest it goes is 41FPS and I've made it to where it doesn't hit this minimum as much. Now, on average it runs between 45 and 50 FPS. It's still not 60+, but it's better. :)

If you already have the game and are a windows user, just get the patch:
Toggles Patch
If you don't have the game and are a windows user, it's just the original link:
Toggles

If you already have the game and are a linux user, just get the source code and recompile:
tog-src.zip
If you don't have the game and are a linux user, get the new version:
toggles-1.2.15.zip

miran

OK, I finally got to really play this and I have a few comments.

1. You should really try to improve the artistic aspect of this game. Gameplay wise, although not that exciting, it's fun enough to be a good distraction for a few minutes. But the graphics are really offputting. I'm not artistically competent enough to give anyone advice, but I think you can go a long way with things like a simple design, subtle gradients, soft colours that go well together (radioactive-slime-green against virgin-blood-red don't by the way), etc.

2. In connection with #1 the font is not good. I see you used my font editor to create it, but to be honest, the "effects" commands in the editor are lame and almost completely useless and shouldn't be used by anyone. The font editor is meant for two purposes: hand drawing small fonts (as in 8x8 and similar) and converting TTF fonts to monochrome bitmap fonts to be later filled in with fancy effects using a real image manipulation program. Or even better, get yourself one of the TTF rendering libraries and use an actual one colour TTF font with antialiased edges. Most often multicolour fonts with lots of effects applied to them are only really useful for things like titles and captions and logos.

3. The "how to play" screen explains everything except what the goal of the game actually is. You should put a line saying something like "push the required number of toggles under water using the mouse before time runs out" somewhere. And the purpose of that selection wheel at the end of each level could also be explained in-game. I had to read the readme of all horrors to find out what that means. I still haven't figured out yet what constitutes a combo though and how to get one. :P

4. Scoring could be more balanced. It seems like you don't get a lot of points for finishing a level and so I was basically just hoping to get the pot of gold at the bonus wheel screen to get those extra 3000 points. Like get 83 points for finishing the level and then 3000 for the pot of gold. Or do the combos give you extra score? I don't get how you could get 400.000+. :o

5. Online scores. What happens when the server can't be reached? Does the loading function time out after a while? How long does it take? This could really get annoying if you're not connected to the internet or if the server is down. In my game I put the server communication code in a separate thread, so everything happens seamlessly in the background...

Anyway, it's a good game, I just wish it looked nicer.

EDIT: A few more things I forgot:

6. If you get a combo and then immediately loose the game, the word "Combo!!!" stays on the screen.

7. The bonus selection wheel shows pixels that are obviously supposed to be magenta but aren't quite pure enough to be skipped by draw_sprite().

8. As I mentioned a few days before, the mouse cursor doesn't work in Linux unless I move the mouse. Changing mouse_icon in the config file doesn't make a difference either. I haven't checked the code, but are you sure you're drawing the cursor in every frame?

9. The ultima powerup is useless. If you use it, a green circle starts to appear and then you loose because time runs out. You should freeze time when ultima is used.

Onewing
Quote:

OK, I finally got to really play this and I have a few comments.

Thanks for taking the time to play! I'll try not to over-reply to all your comments. In other words, I'll try to be concise.

Quote:

1. You should really try to improve the artistic aspect of this game.

Heh, I got carried away. Yes, I plan on making my next game a little more subtle on the eyes. I thought Toggles might be overbearing, so I tried to make a way for users to be able to make their own theme. However, that didn't work out too well either.

Quote:

2. In connection with #1 the font is not good.

I think I started to pick up on this during the last phase of coding. There's only two fonts in the game, the main font and the help font. I think the help font looks quite a bit better then the main font. This is just a matter of practice and trial and error. BTW, I really wish your Font Editor had an undo button. :-/

Quote:

3. The "how to play" screen explains everything except what the goal of the game actually is.

I thought the quick instructions went over this. Is it just not clear?

Quote:

4. Scoring could be more balanced.

I wanted the scoring to be complex, so that way people could develop different strategies to play the game. I guess I made it too complex to the point where it doesn't even make sense.

Quote:

It seems like you don't get a lot of points for finishing a level

Finishing a level, no, getting 100% of the toggles under water does give you a little bonus. 100% of the toggles is worth 100 points times the current level. This was set up for the strategy of not adding rows and columns on the penalty wheel so it's easy to get all the toggles down in the next level. You could get a nice 2000 points in level 20 for getting all 100% of toggles down. However, that's not as much as the 3000 bonus bag (which rarely shows up).

Quote:

Or do the combos give you extra score?

Yes! Combos are the way to get that 400,000+ scores. If you get X consecutive* toggles down in under three seconds, you get a combo, which gives you a certain amount of points times the current level. The first combo is worth 10 points times the current level if you get 10 consecutive toggles down. The second combo is worth 50 points times the current level if you get 25 consecutive toggles down. Thus, once you get the first combo, you just need to hit 15 more toggles to get the second combo (all within that 3 second timeframe)! The third combo is at 45 consecutive toggles and is worth 500 points and the fourth combo is at 70 consecutive toggles and is worth 1000 points.

For one last example, I managed to get the fourth combo in level 21 for my top score. That means in three seconds I got (10 * 21) + (50 * 21) + (500 * 21) + (1000 * 21) + 70 * 5 = 33,110 points! The parenthesis represents each of the four combos and the 70 * 5 is for the 70 toggles I must have hit to get the fourth combo (each 5 levels the toggles are worth 1 more point, thus when you get to level 20, toggles are worth 5 points). I got to level 30 on that top score.

Quote:

Does the loading function time out after a while?

Yes, 15 seconds.

Quote:

In my game I put the server communication code in a separate thread, so everything happens seamlessly in the background...

Threads are new grounds to me, other than what I learned in school. I'll have to learn how to make them portable across linux and windows (or does pthreads work on both OS's?). I'm working on a program now that might require these, so afterwards I might upgrade Toggles as well.

Quote:

If you get a combo and then immediately loose the game, the word "Combo!!!" stays on the screen.

Gotcha, that'll be an easy fix.

Quote:

7. The bonus selection wheel shows pixels that are obviously supposed to be magenta but aren't quite pure enough to be skipped by draw_sprite().

It use to show a lot more. ;D Anyway, I'll fix it.

Quote:

I haven't checked the code, but are you sure you're drawing the cursor in every frame?

That's really odd. If the config is set to 0, right before the buffer is drawn to the screen, the mouse (which is just a bitmap) is drawn to the buffer at mouse_x, mouse_y. Although, I do call poll_mouse() right before...

Quote:

9. The ultima powerup is useless. If you use it, a green circle starts to appear and then you loose because time runs out. You should freeze time when ultima is used.

This is by design. I wanted ultima to be an automatic win of the current level unless time ran out. However, I suppose I could just make ultima an automatic win.

  • About the "consecutive" toggles I mentioned above. I'm talking about getting toggles down without bringing one up. If you bring one toggle up (above the water), it resets how many consecutive toggles you've managed back to 0.

miran
Quote:

Yes, 15 seconds.

I don't know. Just now the "loading high scores..." message didn't go away for more than 30 seconds, so I kill the game. After returning from fullscreen mode I was greeted by this friendly message:

{"name":"590420","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/6\/46c73fc279df09fb4cba8d952d41d69a.png","w":460,"h":79,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/6\/46c73fc279df09fb4cba8d952d41d69a"}590420

I also found another bug. I got to level 18, flipped all the toggles but still lost the game because the bar didn't reach the gold line. There were some boxes(?) in the level though, which don't seem to be flippable, so maybe you're not calculating the percentages right? Or maybe I just don't understand again?

Onewing
Quote:

Just now the "loading high scores..." message didn't go away for more than 30 seconds, so I kill the game. After returning from fullscreen mode I was greeted by this friendly message:

At one time, I had the TIMEOUT set to 30 seconds, but realized that was too long. I just did a grep on TIMEOUT in my sourcecode and I see I actually have it set to 10 instead of 15. So technically, it should only wait 10 seconds. I guess allegro_message("") sends the msgbox behind the allegro program in full screen?

Probably a better solution would be to just log the error in a text file, so players don't even have to worry about error messages. I'll add it to my list...

Quote:

I got to level 18, flipped all the toggles but still lost the game because the bar didn't reach the gold line. There were some boxes(?) in the level though, which don't seem to be flippable

The non-flippable toggles are calculated into the total percentage of toggles underwater (which is why they are particularly nasty). However, if all you have left is non-flippable toggles, the level should still be complete. Are you sure you got all the flippable Toggles underwater (honestly, because I haven't seen this before and that would be a pretty serious bug)?

miran
Quote:

I guess allegro_message("") sends the msgbox behind the allegro program in full screen?

I beleive TFM clearly states that allegro_message() must not be used while a gfx mode is set.

Quote:

that would be a pretty serious bug

I agree, that is a pretty serious bug. I'm positive all the flippable toggles were underwater because my strategy in that particular game was to always choose the +1% penalty. That meant that in level 18 the gold line was already getting close to 100% but the field was still very small so it wasn't difficult to clear it completely.

Onewing

Well, it gets worse. I can't seem to reproduce the problem. I did the +1% for 26 levels. On level 24, I had less than the total percent needed but I had all the flippable toggles underwater and the level was completed (there were about 8 non-flippable toggles still in play).

Did you have all the flippable toggles down for a while before time ran out? If a toggle is in the process of going underwater, it's not considered part of the total percent underwater.

miran
Quote:

Did you have all the flippable toggles down for a while before time ran out? If a toggle is in the process of going underwater, it's not considered part of the total percent underwater.

At the time when the game over message was displayed all flippable toggles were underwater.

Onewing

Alright, here's the logic in the code (with comments to explain it). Maybe there's a hole I'm not seeing:

1//in the board update function
2status = true;
3iCount = 0;
4/*snip*/
5for(int j = 0; j < iRow_Count; j++)
6 for(int k = 0; k < iRow_Count; k++)
7 {
8 /* snip */
9 
10 /* Go through all the toggles currently in play. Each one that is
11 is not visible (it's underwater) increments iCount, which is used to
12 calculate the percentage underwater.
13 If one toggle is visible, status is set to false, meaning you DON'T
14 have 100% of the toggles down, unless the visible toggles is of type
15 3, the unflippable toggles */
16 if(tToggles[j][k]->is_visible() != true)
17 iCount++;
18 else
19 if(tToggles[j][k]->iType() != 3)
20 status = false;
21 }
22 
23// If status never got set to false, then all the flippable Toggles MUST be down
24// Got 100% of Toggles down!!!!!!!!!!
25if(status)
26{
27 alive = false; // Basically says current level is over
28 /*snip*/
29}
30 
31/*snip*/
32 
33/* Further along in the update function is this routine. It sees that time is up,
34 so alive is set to false, meaning the current level is over, whether completed or
35not. Then, it checks to see if enough toggles have been toggled to go to the next
36level.*/
37if(gCurrent_Game.pTime_Progress->finished())
38{
39 alive = false;
40 if(!pToggle_Progress->finished())
41 board_game_over(gCurrent_Game);
42 else
43 {
44 /*snip*/
45 //Basically, go to next level flags are set here
46 }
47}

The only hole I can see is if you get all the flippable toggles down, but this is less than the percent needed and time runs out all within 1 logic frame, which sounds doubtful, but I guess possible, however unlikely.

[edit] And seems like something is messed up with the online highscores atm. I checked the database and all the scores are still there, so it's just something wrong with the display. I'll figure it out soon...

Thread #588142. Printed from Allegro.cc