From 9b069db5cdce7f8bc90d11c3e7f8c83d88646ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ruben=20Mu=CC=88ller?= Date: Sat, 20 Aug 2011 14:49:54 +0200 Subject: [PATCH] initial data and stuff --- README | 4 +- data/menu.data | 8 +++ doc/LICENSE.pcre.txt | 69 +++++++++++++++++++++++++ escape.pbp | 48 ++++++++++++++++++ shots/ESCape-01.jpg | Bin 0 -> 34027 bytes src/Draw.pbi | 43 ++++++++++++++++ src/Events.pbi | 46 +++++++++++++++++ src/Functions.pbi | 1 + src/Globals.pbi | 20 ++++++++ src/Main.pb | 117 +++++++++++++++++++++++++++++++++++++++++++ src/Structs.pbi | 40 +++++++++++++++ 11 files changed, 393 insertions(+), 3 deletions(-) create mode 100644 data/menu.data create mode 100644 doc/LICENSE.pcre.txt create mode 100644 escape.pbp create mode 100644 shots/ESCape-01.jpg create mode 100644 src/Draw.pbi create mode 100644 src/Events.pbi create mode 100644 src/Functions.pbi create mode 100644 src/Globals.pbi create mode 100644 src/Main.pb create mode 100644 src/Structs.pbi diff --git a/README b/README index 491bd24..e70b11f 100644 --- a/README +++ b/README @@ -1,3 +1 @@ -good, you´ve read me! :) - -Test! \ No newline at end of file +Aaron and Ruben Müller for the LD21 \ No newline at end of file diff --git a/data/menu.data b/data/menu.data new file mode 100644 index 0000000..200eac5 --- /dev/null +++ b/data/menu.data @@ -0,0 +1,8 @@ +MAIN_MENU {ESCape} + BUTTON: {Escape now!} -> RUNNING_GAME + BUTTON: {End game} -> RLY_QUIT + +RLY_QUIT {You want to leave?} + BUTTON: {Yes} -> EXIT + BUTTON: {No} -> MAIN_MENU + diff --git a/doc/LICENSE.pcre.txt b/doc/LICENSE.pcre.txt new file mode 100644 index 0000000..9e1d198 --- /dev/null +++ b/doc/LICENSE.pcre.txt @@ -0,0 +1,69 @@ +PCRE LICENCE +------------ + +PCRE is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + +Release 7 of PCRE is distributed under the terms of the "BSD" licence, as +specified below. The documentation for PCRE, supplied in the "doc" +directory, is distributed under the same terms as the software itself. + +The basic library functions are written in C and are freestanding. Also +included in the distribution is a set of C++ wrapper functions. + + +THE BASIC LIBRARY FUNCTIONS +--------------------------- + +Written by: Philip Hazel +Email local part: ph10 +Email domain: cam.ac.uk + +University of Cambridge Computing Service, +Cambridge, England. + +Copyright (c) 1997-2007 University of Cambridge +All rights reserved. + + +THE C++ WRAPPER FUNCTIONS +------------------------- + +Contributed by: Google Inc. + +Copyright (c) 2007, Google Inc. +All rights reserved. + + +THE "BSD" LICENCE +----------------- + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the name of Google + Inc. nor the names of their contributors may be used to endorse or + promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +End + diff --git a/escape.pbp b/escape.pbp new file mode 100644 index 0000000..6b078a0 --- /dev/null +++ b/escape.pbp @@ -0,0 +1,48 @@ + + + +
+ + + LD21 with Aaron and Ruben + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
+
diff --git a/shots/ESCape-01.jpg b/shots/ESCape-01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32b35339e72ff1899aaad5a732fec4935882c1ec GIT binary patch literal 34027 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 literal 0 HcmV?d00001 diff --git a/src/Draw.pbi b/src/Draw.pbi new file mode 100644 index 0000000..47e2a89 --- /dev/null +++ b/src/Draw.pbi @@ -0,0 +1,43 @@ +; Here we draw stuff on screen. These are the dispatch +; functions which will be called from the state dispatch +; process. + + +; Draw the current activated menu. This will be set from +; the dispatcher. The events are controlled by the +; HandleEventMenu() function. +Procedure DrawMenu() + Define Black = RGB(0, 0, 0) + Define White = RGB(255, 255, 255) + Define ActiveMenuItemColor = RGB(255, 0, 0) + + DrawingFont(Font_H1) + DrawText(50, 50, *ActiveMenu\Title, white, black) + + Define Offset = 0 + Define FontColor = White + ForEach *ActiveMenu\Entries() + If *ActiveMenu\Entries()\Selected + FontColor = ActiveMenuItemColor + Else + FontColor = White + EndIf + + DrawingFont(Font_H2) + DrawText(50, 300+(Offset*30), *ActiveMenu\Entries()\Label, FontColor, Black) + Offset = Offset+1 + Next +EndProcedure + + +Procedure DrawRunningGame() + Box(0, 0, 200, 200, RGB(0, 255, 0)) +EndProcedure +; IDE Options = PureBasic 4.51 (MacOS X - x86) +; CursorPosition = 26 +; Folding = - +; EnableUnicode +; EnableThread +; EnableXP +; EnableCompileCount = 0 +; EnableBuildCount = 0 \ No newline at end of file diff --git a/src/Events.pbi b/src/Events.pbi new file mode 100644 index 0000000..8e98cd3 --- /dev/null +++ b/src/Events.pbi @@ -0,0 +1,46 @@ +; In this file, we handle alle the events + +Procedure HandleEventMenu() + Define ActiveMenu_Index.i = ListIndex(*ActiveMenu\Entries()) + + If KeyboardReleased(#PB_Key_Up) + Menu_GotoCurrent() + *ActiveMenu\Entries()\Selected = #False + + If ListIndex(*ActiveMenu\Entries()) = 0 + LastElement(*ActiveMenu\Entries()) + Else + PreviousElement(*ActiveMenu\Entries()) + EndIf + + *ActiveMenu\Entries()\Selected = #True + EndIf + + If KeyboardReleased(#PB_Key_Down) + Menu_GotoCurrent() + *ActiveMenu\Entries()\Selected = #False + + If ListIndex(*ActiveMenu\Entries()) = (ListSize(*ActiveMenu\Entries())-1) + FirstElement(*ActiveMenu\Entries()) + Else + NextElement(*ActiveMenu\Entries()) + EndIf + + *ActiveMenu\Entries()\Selected = #True + EndIf + + If KeyboardReleased(#PB_Key_Return) + Debug "Return!" + EndIf +EndProcedure + +Procedure HandleEventRunningGame() +EndProcedure +; IDE Options = PureBasic 4.51 (MacOS X - x86) +; CursorPosition = 32 +; Folding = - +; EnableUnicode +; EnableThread +; EnableXP +; EnableCompileCount = 0 +; EnableBuildCount = 0 \ No newline at end of file diff --git a/src/Functions.pbi b/src/Functions.pbi new file mode 100644 index 0000000..5e9a352 --- /dev/null +++ b/src/Functions.pbi @@ -0,0 +1 @@ +; This file holds all the functions If it gets too big, ; we can split it in categories ; ***************************************************************************** ; * Menu Procedure Menu_GotoCurrent() If *ActiveMenu\Entries()\Selected <> #True FirstElement(*ActiveMenu\Entries()); ForEach *ActiveMenu\Entries() If *ActiveMenu\Entries()\Selected = #True Break EndIf Next EndIf EndProcedure ; ***************************************************************************** ; IDE Options = PureBasic 4.51 (MacOS X - x86) ; CursorPosition = 13 ; Folding = - ; EnableXP \ No newline at end of file diff --git a/src/Globals.pbi b/src/Globals.pbi new file mode 100644 index 0000000..bec37f9 --- /dev/null +++ b/src/Globals.pbi @@ -0,0 +1,20 @@ + +; Global variables +Global Fullscreen = 0 +Global Title.s = "Pongr - Build " + Str(#PB_Editor_BuildCount) +Global Screen.ScreenDimension\width = 800 +Screen.ScreenDimension\height = 600 + +NewMap GameStates.GameState() +Global NewMap Menus.GameMenu() +Global CurrentState.s = "MAIN_MENU" +Global *ActiveMenu.GameMenu + +; Fonts +Global Font_H1 = LoadFont(1, "Courier", 40, #PB_Font_Bold) +Global Font_H2 = LoadFont(2, "Verdana", 18) +; IDE Options = PureBasic 4.51 (MacOS X - x86) +; CursorPosition = 13 +; EnableXP +; EnableCompileCount = 0 +; EnableBuildCount = 0 \ No newline at end of file diff --git a/src/Main.pb b/src/Main.pb new file mode 100644 index 0000000..e6cfa8a --- /dev/null +++ b/src/Main.pb @@ -0,0 +1,117 @@ +; ESCape +; LD21 entry +; 2011 - Ruben Mueller, Aaron Mueller + +EnableExplicit + +XIncludeFile "Structs.pbi" +XIncludeFile "Globals.pbi" +XIncludeFile "Draw.pbi" +XIncludeFile "Functions.pbi" +XIncludeFile "Events.pbi" + +; Initialize all the variables and stuff. I think we refactor this +; into a separate file if it gets messy. +GameStates("MAIN_MENU")\DrawFun = @DrawMenu() +GameStates("MAIN_MENU")\HandleEventFun = @HandleEventMenu() + +GameStates("OPTION_MENU")\DrawFun = @DrawMenu() +GameStates("OPTION_MENU")\HandleEventFun = @HandleEventMenu() + +GameStates("RUNNING_GAME")\DrawFun = @DrawRunningGame() +GameStates("RUNNING_GAME")\HandleEventFun = @HandleEventRunningGame() + +; Read the complete game menus from the data/menu.data file. +; TODO: IncludeBinary looks interesting! +If ReadFile(0, "../data/menu.data") + CreateRegularExpression(0, "^([A-Z_-]+) {(.*)}") ; Menu title + CreateRegularExpression(1, "^ BUTTON: {(.+)} -> (.+)") ; A button + CreateRegularExpression(2, "^ OPTION: (.*)") ; A option field (TODO: Thats not exactly right) + + While Eof(0) = 0 + Dim Matches$(0) + Define Line.s = ReadString(0) + + ; We found a new menu + If MatchRegularExpression(0, Line) + Define i + For i=0 To ExtractRegularExpression(0, Line, Matches$())-1 + Debug Matches$(i) ; FIXME: Thats not what we want ... + Next + EndIf + Wend + + FreeRegularExpression(0) + FreeRegularExpression(1) + FreeRegularExpression(2) + CloseFile(0) +EndIf + +Menus("MAIN_MENU")\Title = "ESCape" + +Define Item.GameMenuItem +Item.GameMenuItem\Label = "Escape now!" +Item.GameMenuItem\Selected = #True +Item.GameMenuItem\TargetState = GameStates("RUNNING_GAME") +AddElement(Menus("MAIN_MENU")\Entries()) +menus("MAIN_MENU")\Entries() = Item + +Define Item.GameMenuItem +Item.GameMenuItem\Label = "End game" +Item.GameMenuItem\Selected = #False +Item.GameMenuItem\TargetState = GameStates("RLY_QUIT") +AddElement(Menus("MAIN_MENU")\Entries()) +menus("MAIN_MENU")\Entries() = Item + +*ActiveMenu.GameMenu = @Menus(CurrentState) + +; Initialize subsystems +If InitSprite() = 0 Or InitKeyboard() = 0 + MessageRequester("Error", "Sorry, can't keep up.", 0) + End +EndIf + +; Start the main loop which will create the window, wait for events and draw things +; on the screen. To escape from this loop, press ESC or close the window. +If OpenWindow(0, 0, 0, Screen\Width, Screen\Height, title, #PB_Window_ScreenCentered) + OpenWindowedScreen(WindowID(0), 0, 0, Screen\Width, Screen\Height, 0, 0, 0) + + Repeat + ; Event loop + Repeat + Define Event = WindowEvent() + Until Event = 0 + + ; Handle global events + ExamineKeyboard() + If KeyboardReleased(#PB_Key_F) + CloseScreen() + If Fullscreen = 0 + OpenScreen(800, 600, 32, Title) + Fullscreen = 1 + Else + OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0) + Fullscreen = 0 + EndIf + EndIf + + ; Handle the events for the current state + GameStates(CurrentState)\HandleEventFun() + + ; Draw the stuff on the screen + FlipBuffers() + ClearScreen(RGB(0, 0, 0)) + If StartDrawing(ScreenOutput()) + GameStates(CurrentState)\DrawFun() + StopDrawing() + EndIf + + Delay(1) + Until KeyboardPushed(#PB_Key_Escape) +EndIf +; IDE Options = PureBasic 4.51 (MacOS X - x86) +; CursorPosition = 59 +; FirstLine = 26 +; EnableXP +; EnableCompileCount = 0 +; EnableBuildCount = 0 \ No newline at end of file diff --git a/src/Structs.pbi b/src/Structs.pbi new file mode 100644 index 0000000..a974420 --- /dev/null +++ b/src/Structs.pbi @@ -0,0 +1,40 @@ +; This file holds all structs so we can include it in every +; file we need it. + +Structure ScreenDimension + Width.i + Height.i +EndStructure + +Prototype DRAW() +Prototype HANDLE_EVENTS() + +Structure GameState + DrawFun.DRAW + HandleEventFun.HANDLE_EVENTS +EndStructure + + +Structure GameMenuItem + Label.s + TargetState.GameState + Selected.b +EndStructure + +Structure GameOptionItem + List Options.s() + CurrentPosition.i + Selected.b +EndStructure + +Structure GameMenu + Title.s + List Entries.GameMenuItem() +EndStructure +; IDE Options = PureBasic 4.51 (MacOS X - x86) +; CursorPosition = 32 +; EnableUnicode +; EnableThread +; EnableXP +; EnableCompileCount = 1 +; EnableBuildCount = 0 \ No newline at end of file