Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:goupilmtos:2024:games
worminator
worminator-3.0R2.1-speed.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File worminator-3.0R2.1-speed.patch of Package worminator
--- worminator-3.0R2.1/demo.h.speed 2006-02-24 20:05:02.000000000 +0100 +++ worminator-3.0R2.1/demo.h 2006-04-24 23:10:05.000000000 +0200 @@ -74,8 +74,15 @@ speed_counter--; if (keypressed()) time_to_quit = TRUE; } - render_map(); - if (keypressed()) time_to_quit = TRUE; + game_is_running = TRUE; + if (frames_to_draw) { + render_map(); + frames_to_draw--; + } + while (speed_counter == 0) { + rest(1); + if (keypressed()) time_to_quit = TRUE; + } } while(!time_to_quit); // End core demo loop fclose(demofile); --- worminator-3.0R2.1/Worminator.c.speed 2006-03-03 10:29:44.000000000 +0100 +++ worminator-3.0R2.1/Worminator.c 2006-04-24 23:25:29.000000000 +0200 @@ -269,6 +269,16 @@ } END_OF_FUNCTION(increment_speed_counter); +/***********************************\ +|** FRAMERATE THROTTLING FUNCTION **| +\***********************************/ +void increment_frames_to_draw() +{ + if (frames_to_draw < 2) + frames_to_draw++; +} +END_OF_FUNCTION(increment_frames_to_draw); + /*******************\ |** MAIN FUNCTION **| \*******************/ @@ -333,7 +343,12 @@ if (player.timer > 0) player.timer--; speed_counter--; } - render_map(); + game_is_running = TRUE; + if (frames_to_draw) { + render_map(); + frames_to_draw--; + } + while (speed_counter == 0) rest(1); } while(time_to_quit == FALSE); // End core game loop add_console_line("Core loop complete, beginning shutdown."); @@ -1540,10 +1555,6 @@ frame_counter++; if (frame_counter > 32768) frame_counter = 32768; -// game_is_running can be changed from under us by update_animations, this -// should be fixed but just to be sure put the check for it in the while. -while (game_is_running && speed_counter == 0) rest(1); - //set_palette_range(worminator_data_file[DEFAULT_WORMINATOR_PALLETE].dat, 0, 255, FALSE); } @@ -3253,6 +3264,11 @@ install_int_ex(increment_speed_counter, BPS_TO_TIMER(GAME_SPEED_NORMAL)); change_game_speed(wormy_config.game_speed); +// Set up the framerate throtteling timer +LOCK_VARIABLE(frames_to_draw); +LOCK_FUNCTION(increment_frames_to_draw); +install_int_ex(increment_frames_to_draw, BPS_TO_TIMER(80)); + // Set up the soundz add_console_line("Initilizing sound"); reset_sound(); --- worminator-3.0R2.1/globals.h.speed 2006-02-26 22:30:18.000000000 +0100 +++ worminator-3.0R2.1/globals.h 2006-04-24 23:10:05.000000000 +0200 @@ -255,9 +255,10 @@ volatile int speed_counter = 0; volatile int idle_counter = 0; volatile int idle_speed_counter = 0; +volatile int frames_to_draw = 0; // This is used to tell the game timer when to update and when not to -char game_is_running = FALSE; +volatile char game_is_running = FALSE; // This is used to indicate what level we are on char current_level = 1; --- worminator-3.0R2.1/player.h.speed 2006-02-25 10:33:10.000000000 +0100 +++ worminator-3.0R2.1/player.h 2006-04-24 23:10:05.000000000 +0200 @@ -2188,7 +2188,11 @@ if (frame_loop >= 256) done = TRUE; speed_counter--; } - render_map(); + if (frames_to_draw) { + render_map(); + frames_to_draw--; + } + while (speed_counter == 0) rest(1); } while (done != TRUE); // Fade out the display and clear out some junk
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor