| 
								
							 | 
							
								/**********************************************************************************************
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*   raylib - Advance Game template
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*   Screens Functions Declarations (Init, Update, Draw, Unload)
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*   Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*   This software is provided "as-is", without any express or implied warranty. In no event
							 | 
						
						
						
							| 
								
							 | 
							
								*   will the authors be held liable for any damages arising from the use of this software.
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*   Permission is granted to anyone to use this software for any purpose, including commercial
							 | 
						
						
						
							| 
								
							 | 
							
								*   applications, and to alter it and redistribute it freely, subject to the following restrictions:
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*     1. The origin of this software must not be misrepresented; you must not claim that you
							 | 
						
						
						
							| 
								
							 | 
							
								*     wrote the original software. If you use this software in a product, an acknowledgment
							 | 
						
						
						
							| 
								
							 | 
							
								*     in the product documentation would be appreciated but is not required.
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*     2. Altered source versions must be plainly marked as such, and must not be misrepresented
							 | 
						
						
						
							| 
								
							 | 
							
								*     as being the original software.
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								*     3. This notice may not be removed or altered from any source distribution.
							 | 
						
						
						
							| 
								
							 | 
							
								*
							 | 
						
						
						
							| 
								
							 | 
							
								**********************************************************************************************/
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#ifndef SCREENS_H
							 | 
						
						
						
							| 
								
							 | 
							
								#define SCREENS_H
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#define PLAYER_ANIM_FRAMES     7
							 | 
						
						
						
							| 
								
							 | 
							
								#define PLAYER_ANIM_SEQ        2
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Types and Structures Definition
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								typedef enum GameScreen { LOGO = 0, LOGO_RL, TITLE, ATTIC, AISLE01, AISLE02, BATHROOM, LIVINGROOM, KITCHEN, ARMORY, ENDING } GameScreen;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								typedef struct Door {
							 | 
						
						
						
							| 
								
							 | 
							
								    Vector2 position;
							 | 
						
						
						
							| 
								
							 | 
							
								    int facing;
							 | 
						
						
						
							| 
								
							 | 
							
								    bool locked;
							 | 
						
						
						
							| 
								
							 | 
							
								    bool selected;
							 | 
						
						
						
							| 
								
							 | 
							
								    Rectangle frameRec;
							 | 
						
						
						
							| 
								
							 | 
							
								    Rectangle bound;
							 | 
						
						
						
							| 
								
							 | 
							
								} Door;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Global Variables Definition
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								GameScreen currentScreen;
							 | 
						
						
						
							| 
								
							 | 
							
								SpriteFont font;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								Texture2D doors;
							 | 
						
						
						
							| 
								
							 | 
							
								Sound sndDoor;
							 | 
						
						
						
							| 
								
							 | 
							
								Sound sndScream;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#ifdef __cplusplus
							 | 
						
						
						
							| 
								
							 | 
							
								extern "C" {            // Prevents name mangling of functions
							 | 
						
						
						
							| 
								
							 | 
							
								#endif
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Logo Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// raylib Logo Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void rlInitLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void rlUpdateLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void rlDrawLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void rlUnloadLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int rlFinishLogoScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Title Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitTitleScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateTitleScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawTitleScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadTitleScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishTitleScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Attic Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitAtticScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateAtticScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawAtticScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadAtticScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishAtticScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Aisle01 Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitAisle01Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateAisle01Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawAisle01Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadAisle01Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishAisle01Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Aisle02 Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitAisle02Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateAisle02Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawAisle02Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadAisle02Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishAisle02Screen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Bathroom Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitBathroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateBathroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawBathroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadBathroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishBathroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Livingroom Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitLivingroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateLivingroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawLivingroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadLivingroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishLivingroomScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Kitchen Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitKitchenScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateKitchenScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawKitchenScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadKitchenScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishKitchenScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Armory Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitArmoryScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateArmoryScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawArmoryScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadArmoryScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishArmoryScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								// Ending Screen Functions Declaration
							 | 
						
						
						
							| 
								
							 | 
							
								//----------------------------------------------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								void InitEndingScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UpdateEndingScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void DrawEndingScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								void UnloadEndingScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								int FinishEndingScreen(void);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#ifdef __cplusplus
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 | 
						
						
						
							| 
								
							 | 
							
								#endif
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#endif // SCREENS_H
							 |