forked from snapshot112/minigame-menu
		
	wip refactoring file structure
This commit is contained in:
		
							
								
								
									
										87
									
								
								games/manual/assets/manual.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								games/manual/assets/manual.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,87 @@ | ||||
| *--------------------------------------------* | ||||
| |                                            | | ||||
| |           !!! HOWTO MINIGAME !!!           | | ||||
| |                                            | | ||||
| |        Make sure that your terminal        | | ||||
| |        has enough space to display         | | ||||
| |        all the output of the game.         | | ||||
| |                                            | | ||||
| |        This can be achieved by             | | ||||
| |        going fullscreen and/or             | | ||||
| |        zooming out.                        | | ||||
| |                                            | | ||||
| |             *________________*             | | ||||
| |             |    GENERAL     |             | | ||||
| |   *------------------------------------*   | | ||||
| |   |                                    |   | | ||||
| |   |        Exit current screen:        |   | | ||||
| |   |         Escape, backspace          |   | | ||||
| |   |                                    |   | | ||||
| |   |             Reset zoom:            |   | | ||||
| |   |           "'ctrl' + '0'"           |   | | ||||
| |   |                                    |   | | ||||
| |   |              Zoom out:             |   | | ||||
| |   |           "'ctrl' + '-'"           |   | | ||||
| |   |                                    |   | | ||||
| |   |              Zoom in:              |   | | ||||
| |   |           "'ctrl' + '+'"           |   | | ||||
| |   |      "'ctrl' + 'shift' + '='"      |   | | ||||
| |   |                                    |   | | ||||
| |   *------------------------------------*   | | ||||
| |                                            | | ||||
| |        "'ctrl' + '-'"                      | | ||||
| |                                            | | ||||
| |        You can reset the zoom with:        | | ||||
| |        "'ctrl' + '0'"                      | | ||||
| |                                            | | ||||
| |             *________________*             | | ||||
| |             |      MENU      |             | | ||||
| |   *------------------------------------*   | | ||||
| |   |                                    |   | | ||||
| |   |             Move down:             |   | | ||||
| |   |          's', arrow_down           |   | | ||||
| |   |                                    |   | | ||||
| |   |              Move up:              |   | | ||||
| |   |           'w', arrow_up            |   | | ||||
| |   |                                    |   | | ||||
| |   |              Select:               |   | | ||||
| |   |        'f', enter, space bar       |   | | ||||
| |   |                                    |   | | ||||
| |   *------------------------------------*   | | ||||
| |                                            | | ||||
| |            *-----------------*             | | ||||
| |            |   MAZE RUNNER   |             | | ||||
| |   *------------------------------------*   | | ||||
| |   |                                    |   | | ||||
| |   |             Move up:               |   | | ||||
| |   |          'w', arrow_up             |   | | ||||
| |   |                                    |   | | ||||
| |   |            Move down:              |   | | ||||
| |   |         's', arrow_down            |   | | ||||
| |   |                                    |   | | ||||
| |   |            Move right:             |   | | ||||
| |   |         'd', arrow_right           |   | | ||||
| |   |                                    |   | | ||||
| |   |            Move left:              |   | | ||||
| |   |         'a', arrow_left            |   | | ||||
| |   |                                    |   | | ||||
| |   *------------------------------------*   | | ||||
| |                                            | | ||||
| |            *-----------------*             | | ||||
| |            |      SNAKE      |             | | ||||
| |   *------------------------------------*   | | ||||
| |   |                                    |   | | ||||
| |   |             Turn up:               |   | | ||||
| |   |          'w', arrow_up             |   | | ||||
| |   |                                    |   | | ||||
| |   |            Turn down:              |   | | ||||
| |   |         's', arrow_down            |   | | ||||
| |   |                                    |   | | ||||
| |   |            Turn right:             |   | | ||||
| |   |         'd', arrow_right           |   | | ||||
| |   |                                    |   | | ||||
| |   |            Turn left:              |   | | ||||
| |   |         'a', arrow_left            |   | | ||||
| |   |                                    |   | | ||||
| |   *------------------------------------*   | | ||||
| *--------------------------------------------* | ||||
							
								
								
									
										36
									
								
								games/manual/manual.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								games/manual/manual.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| /* | ||||
|  * Created by snapshot112 on 10/17/2025 | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #include "manual.h" | ||||
|  | ||||
| #include <ncurses.h> | ||||
| #include "../../engine/grid_game_engine.h" | ||||
|  | ||||
| void manual(const coordinate display_location) { | ||||
|     erase(); | ||||
|     FILE *fp = fopen("assets/manual.txt", "r"); | ||||
|     if (fp == NULL) { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     grid *grid = grid_create_from_file(fp); | ||||
|     if (grid == NULL) { | ||||
|         mvaddstr(display_location.y, display_location.x, "Error loading grid"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     fclose(fp); | ||||
|  | ||||
|     show_grid_on_offset(grid, display_location.x, display_location.y); | ||||
|  | ||||
|     // Wait until ESCAPE or BACKSPACE is pressed. | ||||
|     timeout(200); | ||||
|     for (int ch = getch(); ch != KEY_ESCAPE && ch != KEY_BACKSPACE; ch = getch()) { | ||||
|         // Update the screen in the meantime to accommodate windows resizes. | ||||
|         show_grid_on_offset(grid, display_location.x, display_location.y); | ||||
|     } | ||||
|  | ||||
|     grid_cleanup(grid); | ||||
| } | ||||
							
								
								
									
										27
									
								
								games/manual/manual.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								games/manual/manual.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| /* | ||||
|  * Created by snapshot112 on 10/17/2025 | ||||
|  * | ||||
|  * Provides a way to display the minigame manual in the assets in game. | ||||
|  */ | ||||
|  | ||||
| #ifndef MINIGAME_MENU_MANUAL_H | ||||
| #define MINIGAME_MENU_MANUAL_H | ||||
| #include "../../engine/grid_game_engine.h" | ||||
|  | ||||
| /* | ||||
|  * An in game manual for the minigames menu. | ||||
|  * | ||||
|  * Please make sure to include and initialize the game engine before opening the manual | ||||
|  * | ||||
|  * Input: | ||||
|  * display_location: The location to display the manual. | ||||
|  * | ||||
|  * Side Effects: | ||||
|  * Clears the console and uses it to display the manual. | ||||
|  * | ||||
|  * Controls: | ||||
|  * Press ESCAPE or BACKSPACE to exit the manual. | ||||
|  */ | ||||
| void manual(coordinate display_location); | ||||
|  | ||||
| #endif //MINIGAME_MENU_MANUAL_H | ||||
		Reference in New Issue
	
	Block a user