├── .gitignore ├── Pseuthe.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── SimplexNoiseAnimator ├── App.config ├── MainWindow.Designer.cs ├── MainWindow.cs ├── MainWindow.resx ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── SimplexNoiseAnimator.csproj └── references │ └── SimplexNoise.dll ├── pseuthe.sln ├── pseuthe ├── CMakeLists.txt ├── Pseuthe-Info.plist ├── Pseuthe_OSX_Icon.iconset │ ├── icon_128x128.png │ ├── icon_16x16.png │ ├── icon_256x256.png │ ├── icon_32x32.png │ └── icon_512x512.png ├── Resource.aps ├── Resource.rc ├── ResourcePath.hpp ├── ResourcePath.mm ├── assets │ ├── fonts │ │ ├── Ardeco.ttf │ │ ├── N_E_B.ttf │ │ ├── VeraMono.ttf │ │ └── VeraMono.txt │ ├── images │ │ ├── help_menu.png │ │ ├── main_menu.png │ │ ├── particles │ │ │ ├── ball_normal.png │ │ │ ├── ball_normal_animated.png │ │ │ ├── balls.cra │ │ │ ├── balls.png │ │ │ ├── circle.png │ │ │ ├── field.png │ │ │ ├── ident.png │ │ │ ├── spark.png │ │ │ └── white.png │ │ ├── player │ │ │ ├── bodypart01.cra │ │ │ ├── bodypart01.png │ │ │ ├── bonus.cra │ │ │ ├── bonus.png │ │ │ ├── food01.cra │ │ │ ├── food01.png │ │ │ ├── food02.cra │ │ │ ├── food02.png │ │ │ ├── food03.cra │ │ │ ├── food03.png │ │ │ ├── head.cra │ │ │ ├── head.png │ │ │ ├── mouth.cra │ │ │ ├── mouth.png │ │ │ ├── wiggler.cra │ │ │ └── wiggler.png │ │ ├── startup.png │ │ ├── ui │ │ │ ├── button.png │ │ │ ├── checkbox.png │ │ │ ├── close.png │ │ │ ├── combobox.png │ │ │ ├── cursor.png │ │ │ ├── scroll_arrow.png │ │ │ ├── scroll_arrow_vertical.png │ │ │ ├── slider_handle.png │ │ │ ├── start_button.png │ │ │ └── textbox.png │ │ └── vignette.png │ └── sound │ │ ├── background.ogg │ │ ├── chimes01 │ │ ├── 01.wav │ │ ├── 02.wav │ │ ├── 03.wav │ │ ├── 04.wav │ │ ├── 05.wav │ │ ├── 06.wav │ │ ├── 07.wav │ │ └── 08.wav │ │ ├── healthgained.wav │ │ ├── healthlost.wav │ │ ├── jelly_eat.wav │ │ ├── nomnom.wav │ │ ├── player_spawn.wav │ │ ├── startup.wav │ │ └── switch.wav ├── cmake │ └── modules │ │ └── FindSFML.cmake ├── extlibs │ └── sfml │ │ ├── bin │ │ ├── openal32.dll │ │ ├── sfml-audio-2.dll │ │ ├── sfml-audio-d-2.dll │ │ ├── sfml-audio-d.lib │ │ ├── sfml-audio.lib │ │ ├── sfml-graphics-2.dll │ │ ├── sfml-graphics-d-2.dll │ │ ├── sfml-graphics-d.lib │ │ ├── sfml-graphics.lib │ │ ├── sfml-main-d.lib │ │ ├── sfml-main.lib │ │ ├── sfml-system-2.dll │ │ ├── sfml-system-d-2.dll │ │ ├── sfml-system-d.lib │ │ ├── sfml-system.lib │ │ ├── sfml-window-2.dll │ │ ├── sfml-window-d-2.dll │ │ ├── sfml-window-d.lib │ │ └── sfml-window.lib │ │ └── include │ │ └── SFML │ │ ├── Audio.hpp │ │ ├── Audio │ │ ├── AlResource.hpp │ │ ├── Export.hpp │ │ ├── InputSoundFile.hpp │ │ ├── Listener.hpp │ │ ├── Music.hpp │ │ ├── OutputSoundFile.hpp │ │ ├── Sound.hpp │ │ ├── SoundBuffer.hpp │ │ ├── SoundBufferRecorder.hpp │ │ ├── SoundFileFactory.hpp │ │ ├── SoundFileFactory.inl │ │ ├── SoundFileReader.hpp │ │ ├── SoundFileWriter.hpp │ │ ├── SoundRecorder.hpp │ │ ├── SoundSource.hpp │ │ └── SoundStream.hpp │ │ ├── Config.hpp │ │ ├── GpuPreference.hpp │ │ ├── Graphics.hpp │ │ ├── Graphics │ │ ├── BlendMode.hpp │ │ ├── CircleShape.hpp │ │ ├── Color.hpp │ │ ├── ConvexShape.hpp │ │ ├── Drawable.hpp │ │ ├── Export.hpp │ │ ├── Font.hpp │ │ ├── Glsl.hpp │ │ ├── Glsl.inl │ │ ├── Glyph.hpp │ │ ├── Image.hpp │ │ ├── PrimitiveType.hpp │ │ ├── Rect.hpp │ │ ├── Rect.inl │ │ ├── RectangleShape.hpp │ │ ├── RenderStates.hpp │ │ ├── RenderTarget.hpp │ │ ├── RenderTexture.hpp │ │ ├── RenderWindow.hpp │ │ ├── Shader.hpp │ │ ├── Shape.hpp │ │ ├── Sprite.hpp │ │ ├── Text.hpp │ │ ├── Texture.hpp │ │ ├── Transform.hpp │ │ ├── Transformable.hpp │ │ ├── Vertex.hpp │ │ ├── VertexArray.hpp │ │ ├── VertexBuffer.hpp │ │ └── View.hpp │ │ ├── Main.hpp │ │ ├── Network.hpp │ │ ├── Network │ │ ├── Export.hpp │ │ ├── Ftp.hpp │ │ ├── Http.hpp │ │ ├── IpAddress.hpp │ │ ├── Packet.hpp │ │ ├── Socket.hpp │ │ ├── SocketHandle.hpp │ │ ├── SocketSelector.hpp │ │ ├── TcpListener.hpp │ │ ├── TcpSocket.hpp │ │ └── UdpSocket.hpp │ │ ├── OpenGL.hpp │ │ ├── System.hpp │ │ ├── System │ │ ├── Clock.hpp │ │ ├── Err.hpp │ │ ├── Export.hpp │ │ ├── FileInputStream.hpp │ │ ├── InputStream.hpp │ │ ├── Lock.hpp │ │ ├── MemoryInputStream.hpp │ │ ├── Mutex.hpp │ │ ├── NativeActivity.hpp │ │ ├── NonCopyable.hpp │ │ ├── Sleep.hpp │ │ ├── String.hpp │ │ ├── String.inl │ │ ├── Thread.hpp │ │ ├── Thread.inl │ │ ├── ThreadLocal.hpp │ │ ├── ThreadLocalPtr.hpp │ │ ├── ThreadLocalPtr.inl │ │ ├── Time.hpp │ │ ├── Utf.hpp │ │ ├── Utf.inl │ │ ├── Vector2.hpp │ │ ├── Vector2.inl │ │ ├── Vector3.hpp │ │ └── Vector3.inl │ │ ├── Window.hpp │ │ └── Window │ │ ├── Clipboard.hpp │ │ ├── Context.hpp │ │ ├── ContextSettings.hpp │ │ ├── Cursor.hpp │ │ ├── Event.hpp │ │ ├── Export.hpp │ │ ├── GlResource.hpp │ │ ├── Joystick.hpp │ │ ├── Keyboard.hpp │ │ ├── Mouse.hpp │ │ ├── Sensor.hpp │ │ ├── Touch.hpp │ │ ├── VideoMode.hpp │ │ ├── Vulkan.hpp │ │ ├── Window.hpp │ │ ├── WindowBase.hpp │ │ ├── WindowHandle.hpp │ │ └── WindowStyle.hpp ├── icon.rc ├── include │ ├── Affectors.hpp │ ├── AnimatedDrawable.hpp │ ├── App.hpp │ ├── AudioManager.hpp │ ├── BodypartController.hpp │ ├── CausticDrawable.hpp │ ├── CircleDrawable.hpp │ ├── Component.hpp │ ├── EchoDrawable.hpp │ ├── Entity.hpp │ ├── FadeDrawable.hpp │ ├── FileSystem.hpp │ ├── GameController.hpp │ ├── GameState.hpp │ ├── GradientDrawable.hpp │ ├── HelpState.hpp │ ├── Icon.hpp │ ├── InputComponent.hpp │ ├── JsonUtil.hpp │ ├── LightPosition.hpp │ ├── Log.hpp │ ├── MakeUnique.hpp │ ├── MenuState.hpp │ ├── MessageBus.hpp │ ├── Music.hpp │ ├── OrbController.hpp │ ├── Particle.hpp │ ├── ParticleField.hpp │ ├── ParticleSystem.hpp │ ├── PhysicsComponent.hpp │ ├── PhysicsWorld.hpp │ ├── PlanktonController.hpp │ ├── PostBloom.hpp │ ├── PostChromeAb.hpp │ ├── PostProcess.hpp │ ├── Resource.hpp │ ├── Scene.hpp │ ├── Score.hpp │ ├── ScoreState.hpp │ ├── ShaderResource.hpp │ ├── Shaders.hpp │ ├── SoundPlayer.hpp │ ├── State.hpp │ ├── StateIds.hpp │ ├── StateStack.hpp │ ├── TailDrawable.hpp │ ├── TextDrawable.hpp │ ├── Ticker.hpp │ ├── TitleState.hpp │ ├── UIButton.hpp │ ├── UICheckBox.hpp │ ├── UIComboBox.hpp │ ├── UIContainer.hpp │ ├── UIControl.hpp │ ├── UIScoreList.hpp │ ├── UISelection.hpp │ ├── UISlider.hpp │ ├── UITextBox.hpp │ ├── Util.hpp │ ├── picojson.LICENSE │ └── picojson.h ├── pseuthe.vcxproj ├── pseuthe.vcxproj.filters ├── pseuthe_icon.ico ├── resource.h └── src │ ├── Affectors.cpp │ ├── AnimatedDrawable.cpp │ ├── App.cpp │ ├── AudioManager.cpp │ ├── BodypartController.cpp │ ├── CausticDrawable.cpp │ ├── CircleDrawable.cpp │ ├── Component.cpp │ ├── EchoDrawable.cpp │ ├── Entity.cpp │ ├── FadeDrawable.cpp │ ├── FileSystem.cpp │ ├── FontResource.cpp │ ├── GameController.cpp │ ├── GameState.cpp │ ├── GradientDrawable.cpp │ ├── HelpState.cpp │ ├── InputComponent.cpp │ ├── LightPosition.cpp │ ├── MenuState.cpp │ ├── MessageBus.cpp │ ├── Music.cpp │ ├── OrbController.cpp │ ├── ParticleFactory.cpp │ ├── ParticleField.cpp │ ├── ParticleSystem.cpp │ ├── PhysicsComponent.cpp │ ├── PhysicsConstraint.cpp │ ├── PhysicsWorld.cpp │ ├── PlanktonController.cpp │ ├── PostBloom.cpp │ ├── PostChromeAb.cpp │ ├── PostProcess.cpp │ ├── Scene.cpp │ ├── Score.cpp │ ├── ScoreState.cpp │ ├── ShaderResource.cpp │ ├── SoundPlayer.cpp │ ├── State.cpp │ ├── StateStack.cpp │ ├── TailDrawable.cpp │ ├── TailDrawablePhysics.cpp │ ├── TextDrawable.cpp │ ├── Ticker.cpp │ ├── TitleState.cpp │ ├── UIButton.cpp │ ├── UICheckBox.cpp │ ├── UIComboBox.cpp │ ├── UIContainer.cpp │ ├── UIControl.cpp │ ├── UIScoreList.cpp │ ├── UISelection.cpp │ ├── UISlider.cpp │ ├── UITextBox.cpp │ └── main.cpp └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | Debug 2 | Release 3 | -------------------------------------------------------------------------------- /Pseuthe.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SimplexNoiseAnimator/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /SimplexNoiseAnimator/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace SimplexNoiseAnimator 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new MainWindow()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SimplexNoiseAnimator/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SimplexNoiseAnimator")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Organisation")] 12 | [assembly: AssemblyProduct("SimplexNoiseAnimator")] 13 | [assembly: AssemblyCopyright("Copyright © Organisation 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("638dd9f2-e415-4856-ab4b-b6ce3d43ccda")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SimplexNoiseAnimator/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.34209 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SimplexNoiseAnimator.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SimplexNoiseAnimator/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SimplexNoiseAnimator/references/SimplexNoise.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/SimplexNoiseAnimator/references/SimplexNoise.dll -------------------------------------------------------------------------------- /pseuthe/Pseuthe-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | Pseuthe_OSX_Icon 11 | CFBundleIdentifier 12 | Pseuthe.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleSignature 20 | ???? 21 | NSHighResolutionCapable 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /pseuthe/Pseuthe_OSX_Icon.iconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/Pseuthe_OSX_Icon.iconset/icon_128x128.png -------------------------------------------------------------------------------- /pseuthe/Pseuthe_OSX_Icon.iconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/Pseuthe_OSX_Icon.iconset/icon_16x16.png -------------------------------------------------------------------------------- /pseuthe/Pseuthe_OSX_Icon.iconset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/Pseuthe_OSX_Icon.iconset/icon_256x256.png -------------------------------------------------------------------------------- /pseuthe/Pseuthe_OSX_Icon.iconset/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/Pseuthe_OSX_Icon.iconset/icon_32x32.png -------------------------------------------------------------------------------- /pseuthe/Pseuthe_OSX_Icon.iconset/icon_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/Pseuthe_OSX_Icon.iconset/icon_512x512.png -------------------------------------------------------------------------------- /pseuthe/Resource.aps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/Resource.aps -------------------------------------------------------------------------------- /pseuthe/Resource.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/Resource.rc -------------------------------------------------------------------------------- /pseuthe/ResourcePath.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2015 Marco Antognini (antognini.marco@gmail.com), 5 | // Laurent Gomila (laurent@sfml-dev.org) 6 | // 7 | // This software is provided 'as-is', without any express or implied warranty. 8 | // In no event will the authors be held liable for any damages arising from the use of this software. 9 | // 10 | // Permission is granted to anyone to use this software for any purpose, 11 | // including commercial applications, and to alter it and redistribute it freely, 12 | // subject to the following restrictions: 13 | // 14 | // 1. The origin of this software must not be misrepresented; 15 | // you must not claim that you wrote the original software. 16 | // If you use this software in a product, an acknowledgment 17 | // in the product documentation would be appreciated but is not required. 18 | // 19 | // 2. Altered source versions must be plainly marked as such, 20 | // and must not be misrepresented as being the original software. 21 | // 22 | // 3. This notice may not be removed or altered from any source distribution. 23 | // 24 | //////////////////////////////////////////////////////////// 25 | 26 | #ifndef RESOURCE_PATH_HPP 27 | #define RESOURCE_PATH_HPP 28 | 29 | //////////////////////////////////////////////////////////// 30 | // Headers 31 | //////////////////////////////////////////////////////////// 32 | #include 33 | 34 | //////////////////////////////////////////////////////////// 35 | /// \brief Return the path to the resource folder. 36 | /// 37 | /// \return The path to the resource folder associate 38 | /// with the main bundle or an empty string is there is no bundle. 39 | /// 40 | //////////////////////////////////////////////////////////// 41 | std::string resourcePath(void); 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /pseuthe/ResourcePath.mm: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2015 Marco Antognini (antognini.marco@gmail.com), 5 | // Laurent Gomila (laurent@sfml-dev.org) 6 | // 7 | // This software is provided 'as-is', without any express or implied warranty. 8 | // In no event will the authors be held liable for any damages arising from the use of this software. 9 | // 10 | // Permission is granted to anyone to use this software for any purpose, 11 | // including commercial applications, and to alter it and redistribute it freely, 12 | // subject to the following restrictions: 13 | // 14 | // 1. The origin of this software must not be misrepresented; 15 | // you must not claim that you wrote the original software. 16 | // If you use this software in a product, an acknowledgment 17 | // in the product documentation would be appreciated but is not required. 18 | // 19 | // 2. Altered source versions must be plainly marked as such, 20 | // and must not be misrepresented as being the original software. 21 | // 22 | // 3. This notice may not be removed or altered from any source distribution. 23 | // 24 | //////////////////////////////////////////////////////////// 25 | 26 | //////////////////////////////////////////////////////////// 27 | // Headers 28 | //////////////////////////////////////////////////////////// 29 | #include "ResourcePath.hpp" 30 | #import 31 | 32 | //////////////////////////////////////////////////////////// 33 | std::string resourcePath(void) 34 | { 35 | NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; 36 | 37 | std::string rpath; 38 | NSBundle* bundle = [NSBundle mainBundle]; 39 | 40 | if (bundle == nil) { 41 | #ifdef DEBUG 42 | NSLog(@"bundle is nil... thus no resources path can be found."); 43 | #endif 44 | } else { 45 | NSString* path = [bundle resourcePath]; 46 | rpath = [path UTF8String] + std::string("/"); 47 | } 48 | 49 | [pool drain]; 50 | 51 | return rpath; 52 | } 53 | -------------------------------------------------------------------------------- /pseuthe/assets/fonts/Ardeco.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/fonts/Ardeco.ttf -------------------------------------------------------------------------------- /pseuthe/assets/fonts/N_E_B.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/fonts/N_E_B.ttf -------------------------------------------------------------------------------- /pseuthe/assets/fonts/VeraMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/fonts/VeraMono.ttf -------------------------------------------------------------------------------- /pseuthe/assets/fonts/VeraMono.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/fonts/VeraMono.txt -------------------------------------------------------------------------------- /pseuthe/assets/images/help_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/help_menu.png -------------------------------------------------------------------------------- /pseuthe/assets/images/main_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/main_menu.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/ball_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/ball_normal.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/ball_normal_animated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/ball_normal_animated.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/balls.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 31, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 32, 11 | "FrameSize": "128, 128", 12 | "FrameRate": 16.0, 13 | "Texture": "balls.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/balls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/balls.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/circle.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/field.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/ident.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/ident.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/spark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/spark.png -------------------------------------------------------------------------------- /pseuthe/assets/images/particles/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/particles/white.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/bodypart01.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 15, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 16, 11 | "FrameSize": "64, 64", 12 | "FrameRate": 24.0, 13 | "Texture": "bodypart01.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/bodypart01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/bodypart01.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/bonus.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 9, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 10, 11 | "FrameSize": "64, 64", 12 | "FrameRate": 19.0, 13 | "Texture": "bonus.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/bonus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/bonus.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/food01.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 15, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 16, 11 | "FrameSize": "64, 64", 12 | "FrameRate": 24.0, 13 | "Texture": "food01.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/food01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/food01.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/food02.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 15, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 16, 11 | "FrameSize": "64, 64", 12 | "FrameRate": 24.0, 13 | "Texture": "food02.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/food02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/food02.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/food03.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 15, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 16, 11 | "FrameSize": "64, 64", 12 | "FrameRate": 18.0, 13 | "Texture": "food03.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/food03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/food03.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/head.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 15, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 16, 11 | "FrameSize": "64, 64", 12 | "FrameRate": 24.0, 13 | "Texture": "head.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/head.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/mouth.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 7, 6 | "Loop": false, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 8, 11 | "FrameSize": "64, 64", 12 | "FrameRate": 24.0, 13 | "Texture": "mouth.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/mouth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/mouth.png -------------------------------------------------------------------------------- /pseuthe/assets/images/player/wiggler.cra: -------------------------------------------------------------------------------- 1 | { 2 | "Animations": [ 3 | { 4 | "Start": 0, 5 | "End": 7, 6 | "Loop": true, 7 | "Name": "default" 8 | } 9 | ], 10 | "FrameCount": 8, 11 | "FrameSize": "64, 32", 12 | "FrameRate": 24.0, 13 | "Texture": "wiggler.png", 14 | "NormalMap": "none.png" 15 | } -------------------------------------------------------------------------------- /pseuthe/assets/images/player/wiggler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/player/wiggler.png -------------------------------------------------------------------------------- /pseuthe/assets/images/startup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/startup.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/button.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/checkbox.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/close.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/combobox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/combobox.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/cursor.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/scroll_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/scroll_arrow.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/scroll_arrow_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/scroll_arrow_vertical.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/slider_handle.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/start_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/start_button.png -------------------------------------------------------------------------------- /pseuthe/assets/images/ui/textbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/ui/textbox.png -------------------------------------------------------------------------------- /pseuthe/assets/images/vignette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/images/vignette.png -------------------------------------------------------------------------------- /pseuthe/assets/sound/background.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/background.ogg -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/01.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/02.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/03.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/04.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/04.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/05.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/05.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/06.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/06.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/07.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/07.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/chimes01/08.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/chimes01/08.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/healthgained.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/healthgained.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/healthlost.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/healthlost.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/jelly_eat.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/jelly_eat.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/nomnom.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/nomnom.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/player_spawn.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/player_spawn.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/startup.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/startup.wav -------------------------------------------------------------------------------- /pseuthe/assets/sound/switch.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/assets/sound/switch.wav -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/openal32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/openal32.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-audio-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-audio-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-audio-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-audio-d-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-audio-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-audio-d.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-audio.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-audio.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-graphics-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-graphics-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-graphics-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-graphics-d-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-graphics-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-graphics-d.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-graphics.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-graphics.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-main-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-main-d.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-main.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-main.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-system-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-system-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-system-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-system-d-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-system-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-system-d.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-system.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-system.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-window-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-window-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-window-d-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-window-d-2.dll -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-window-d.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-window-d.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/bin/sfml-window.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fallahn/pseuthe/ae99f319927328a0ea48df06763f28fb2e2221bb/pseuthe/extlibs/sfml/bin/sfml-window.lib -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Audio.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_AUDIO_HPP 26 | #define SFML_AUDIO_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | 47 | 48 | #endif // SFML_AUDIO_HPP 49 | 50 | //////////////////////////////////////////////////////////// 51 | /// \defgroup audio Audio module 52 | /// 53 | /// Sounds, streaming (musics or custom sources), recording, 54 | /// spatialization. 55 | /// 56 | //////////////////////////////////////////////////////////// 57 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Audio/AlResource.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_ALRESOURCE_HPP 26 | #define SFML_ALRESOURCE_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | namespace sf 35 | { 36 | //////////////////////////////////////////////////////////// 37 | /// \brief Base class for classes that require an OpenAL context 38 | /// 39 | //////////////////////////////////////////////////////////// 40 | class SFML_AUDIO_API AlResource 41 | { 42 | protected: 43 | 44 | //////////////////////////////////////////////////////////// 45 | /// \brief Default constructor 46 | /// 47 | //////////////////////////////////////////////////////////// 48 | AlResource(); 49 | 50 | //////////////////////////////////////////////////////////// 51 | /// \brief Destructor 52 | /// 53 | //////////////////////////////////////////////////////////// 54 | ~AlResource(); 55 | }; 56 | 57 | } // namespace sf 58 | 59 | 60 | #endif // SFML_ALRESOURCE_HPP 61 | 62 | //////////////////////////////////////////////////////////// 63 | /// \class sf::AlResource 64 | /// \ingroup audio 65 | /// 66 | /// This class is for internal use only, it must be the base 67 | /// of every class that requires a valid OpenAL context in 68 | /// order to work. 69 | /// 70 | //////////////////////////////////////////////////////////// 71 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Audio/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_AUDIO_EXPORT_HPP 26 | #define SFML_AUDIO_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_AUDIO_EXPORTS) 38 | 39 | #define SFML_AUDIO_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_AUDIO_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_AUDIO_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/GpuPreference.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GPUPREFERENCE_HPP 26 | #define SFML_GPUPREFERENCE_HPP 27 | 28 | 29 | //////////////////////////////////////////////////////////// 30 | /// Headers 31 | //////////////////////////////////////////////////////////// 32 | #include 33 | 34 | 35 | //////////////////////////////////////////////////////////// 36 | /// \file 37 | /// 38 | /// \brief File containing SFML_DEFINE_DISCRETE_GPU_PREFERENCE 39 | /// 40 | //////////////////////////////////////////////////////////// 41 | 42 | 43 | //////////////////////////////////////////////////////////// 44 | /// \def SFML_DEFINE_DISCRETE_GPU_PREFERENCE 45 | /// 46 | /// \brief A macro to encourage usage of the discrete GPU 47 | /// 48 | /// In order to inform the Nvidia/AMD driver that an SFML 49 | /// application could benefit from using the more powerful 50 | /// discrete GPU, special symbols have to be publicly 51 | /// exported from the final executable. 52 | /// 53 | /// SFML defines a helper macro to easily do this. 54 | /// 55 | /// Place SFML_DEFINE_DISCRETE_GPU_PREFERENCE in the 56 | /// global scope of a source file that will be linked into 57 | /// the final executable. Typically it is best to place it 58 | /// where the main function is also defined. 59 | /// 60 | //////////////////////////////////////////////////////////// 61 | #if defined(SFML_SYSTEM_WINDOWS) 62 | 63 | #define SFML_DEFINE_DISCRETE_GPU_PREFERENCE \ 64 | extern "C" __declspec(dllexport) unsigned long NvOptimusEnablement = 1; \ 65 | extern "C" __declspec(dllexport) unsigned long AmdPowerXpressRequestHighPerformance = 1; 66 | 67 | #else 68 | 69 | #define SFML_DEFINE_DISCRETE_GPU_PREFERENCE 70 | 71 | #endif 72 | 73 | 74 | #endif // SFML_GPUPREFERENCE_HPP 75 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Graphics.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GRAPHICS_HPP 26 | #define SFML_GRAPHICS_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | 60 | 61 | #endif // SFML_GRAPHICS_HPP 62 | 63 | //////////////////////////////////////////////////////////// 64 | /// \defgroup graphics Graphics module 65 | /// 66 | /// 2D graphics module: sprites, text, shapes, ... 67 | /// 68 | //////////////////////////////////////////////////////////// 69 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Graphics/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GRAPHICS_EXPORT_HPP 26 | #define SFML_GRAPHICS_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_GRAPHICS_EXPORTS) 38 | 39 | #define SFML_GRAPHICS_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_GRAPHICS_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_GRAPHICS_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Graphics/Glyph.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_GLYPH_HPP 26 | #define SFML_GLYPH_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | #include 33 | 34 | 35 | namespace sf 36 | { 37 | //////////////////////////////////////////////////////////// 38 | /// \brief Structure describing a glyph 39 | /// 40 | //////////////////////////////////////////////////////////// 41 | class SFML_GRAPHICS_API Glyph 42 | { 43 | public: 44 | 45 | //////////////////////////////////////////////////////////// 46 | /// \brief Default constructor 47 | /// 48 | //////////////////////////////////////////////////////////// 49 | Glyph() : advance(0) {} 50 | 51 | //////////////////////////////////////////////////////////// 52 | // Member data 53 | //////////////////////////////////////////////////////////// 54 | float advance; //!< Offset to move horizontally to the next character 55 | FloatRect bounds; //!< Bounding rectangle of the glyph, in coordinates relative to the baseline 56 | IntRect textureRect; //!< Texture coordinates of the glyph inside the font's texture 57 | }; 58 | 59 | } // namespace sf 60 | 61 | 62 | #endif // SFML_GLYPH_HPP 63 | 64 | 65 | //////////////////////////////////////////////////////////// 66 | /// \class sf::Glyph 67 | /// \ingroup graphics 68 | /// 69 | /// A glyph is the visual representation of a character. 70 | /// 71 | /// The sf::Glyph structure provides the information needed 72 | /// to handle the glyph: 73 | /// \li its coordinates in the font's texture 74 | /// \li its bounding rectangle 75 | /// \li the offset to apply to get the starting position of the next glyph 76 | /// 77 | /// \see sf::Font 78 | /// 79 | //////////////////////////////////////////////////////////// 80 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Graphics/PrimitiveType.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_PRIMITIVETYPE_HPP 26 | #define SFML_PRIMITIVETYPE_HPP 27 | 28 | namespace sf 29 | { 30 | //////////////////////////////////////////////////////////// 31 | /// \ingroup graphics 32 | /// \brief Types of primitives that a sf::VertexArray can render 33 | /// 34 | /// Points and lines have no area, therefore their thickness 35 | /// will always be 1 pixel, regardless the current transform 36 | /// and view. 37 | /// 38 | //////////////////////////////////////////////////////////// 39 | enum PrimitiveType 40 | { 41 | Points, //!< List of individual points 42 | Lines, //!< List of individual lines 43 | LineStrip, //!< List of connected lines, a point uses the previous point to form a line 44 | Triangles, //!< List of individual triangles 45 | TriangleStrip, //!< List of connected triangles, a point uses the two previous points to form a triangle 46 | TriangleFan, //!< List of connected triangles, a point uses the common center and the previous point to form a triangle 47 | Quads, //!< List of individual quads (deprecated, don't work with OpenGL ES) 48 | 49 | // Deprecated names 50 | LinesStrip = LineStrip, //!< \deprecated Use LineStrip instead 51 | TrianglesStrip = TriangleStrip, //!< \deprecated Use TriangleStrip instead 52 | TrianglesFan = TriangleFan //!< \deprecated Use TriangleFan instead 53 | }; 54 | 55 | } // namespace sf 56 | 57 | 58 | #endif // SFML_PRIMITIVETYPE_HPP 59 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Main.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_MAIN_HPP 26 | #define SFML_MAIN_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | #if defined(SFML_SYSTEM_IOS) 35 | 36 | // On iOS, we have no choice but to have our own main, 37 | // so we need to rename the user one and call it later 38 | #define main sfmlMain 39 | 40 | #endif 41 | 42 | 43 | #endif // SFML_MAIN_HPP 44 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Network.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_NETWORK_HPP 26 | #define SFML_NETWORK_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | 44 | 45 | #endif // SFML_NETWORK_HPP 46 | 47 | //////////////////////////////////////////////////////////// 48 | /// \defgroup network Network module 49 | /// 50 | /// Socket-based communication, utilities and higher-level 51 | /// network protocols (HTTP, FTP). 52 | /// 53 | //////////////////////////////////////////////////////////// 54 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Network/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_NETWORK_EXPORT_HPP 26 | #define SFML_NETWORK_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_NETWORK_EXPORTS) 38 | 39 | #define SFML_NETWORK_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_NETWORK_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_NETWORK_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Network/SocketHandle.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SOCKETHANDLE_HPP 26 | #define SFML_SOCKETHANDLE_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | #if defined(SFML_SYSTEM_WINDOWS) 34 | #include 35 | #endif 36 | 37 | 38 | namespace sf 39 | { 40 | //////////////////////////////////////////////////////////// 41 | // Define the low-level socket handle type, specific to 42 | // each platform 43 | //////////////////////////////////////////////////////////// 44 | #if defined(SFML_SYSTEM_WINDOWS) 45 | 46 | typedef UINT_PTR SocketHandle; 47 | 48 | #else 49 | 50 | typedef int SocketHandle; 51 | 52 | #endif 53 | 54 | } // namespace sf 55 | 56 | 57 | #endif // SFML_SOCKETHANDLE_HPP 58 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/OpenGL.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_OPENGL_HPP 26 | #define SFML_OPENGL_HPP 27 | 28 | 29 | //////////////////////////////////////////////////////////// 30 | /// Headers 31 | //////////////////////////////////////////////////////////// 32 | #include 33 | 34 | 35 | //////////////////////////////////////////////////////////// 36 | /// This file just includes the OpenGL headers, 37 | /// which have actually different paths on each system 38 | //////////////////////////////////////////////////////////// 39 | #if defined(SFML_SYSTEM_WINDOWS) 40 | 41 | // The Visual C++ version of gl.h uses WINGDIAPI and APIENTRY but doesn't define them 42 | #ifdef _MSC_VER 43 | #include 44 | #endif 45 | 46 | #include 47 | 48 | #elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD) 49 | 50 | #if defined(SFML_OPENGL_ES) 51 | #include 52 | #include 53 | #else 54 | #include 55 | #endif 56 | 57 | #elif defined(SFML_SYSTEM_MACOS) 58 | 59 | #include 60 | 61 | #elif defined (SFML_SYSTEM_IOS) 62 | 63 | #include 64 | #include 65 | 66 | #elif defined (SFML_SYSTEM_ANDROID) 67 | 68 | #include 69 | #include 70 | 71 | // We're not using OpenGL ES 2+ yet, but we can use the sRGB extension 72 | #include 73 | #include 74 | 75 | #endif 76 | 77 | 78 | #endif // SFML_OPENGL_HPP 79 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/System.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SYSTEM_HPP 26 | #define SFML_SYSTEM_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | 51 | #endif // SFML_SYSTEM_HPP 52 | 53 | //////////////////////////////////////////////////////////// 54 | /// \defgroup system System module 55 | /// 56 | /// Base module of SFML, defining various utilities. It provides 57 | /// vector classes, Unicode strings and conversion functions, 58 | /// threads and mutexes, timing classes. 59 | /// 60 | //////////////////////////////////////////////////////////// 61 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/System/Err.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_ERR_HPP 26 | #define SFML_ERR_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | #include 33 | 34 | 35 | namespace sf 36 | { 37 | //////////////////////////////////////////////////////////// 38 | /// \brief Standard stream used by SFML to output warnings and errors 39 | /// 40 | //////////////////////////////////////////////////////////// 41 | SFML_SYSTEM_API std::ostream& err(); 42 | 43 | } // namespace sf 44 | 45 | 46 | #endif // SFML_ERR_HPP 47 | 48 | 49 | //////////////////////////////////////////////////////////// 50 | /// \fn sf::err 51 | /// \ingroup system 52 | /// 53 | /// By default, sf::err() outputs to the same location as std::cerr, 54 | /// (-> the stderr descriptor) which is the console if there's 55 | /// one available. 56 | /// 57 | /// It is a standard std::ostream instance, so it supports all the 58 | /// insertion operations defined by the STL 59 | /// (operator <<, manipulators, etc.). 60 | /// 61 | /// sf::err() can be redirected to write to another output, independently 62 | /// of std::cerr, by using the rdbuf() function provided by the 63 | /// std::ostream class. 64 | /// 65 | /// Example: 66 | /// \code 67 | /// // Redirect to a file 68 | /// std::ofstream file("sfml-log.txt"); 69 | /// std::streambuf* previous = sf::err().rdbuf(file.rdbuf()); 70 | /// 71 | /// // Redirect to nothing 72 | /// sf::err().rdbuf(NULL); 73 | /// 74 | /// // Restore the original output 75 | /// sf::err().rdbuf(previous); 76 | /// \endcode 77 | /// 78 | /// \return Reference to std::ostream representing the SFML error stream 79 | /// 80 | //////////////////////////////////////////////////////////// 81 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/System/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SYSTEM_EXPORT_HPP 26 | #define SFML_SYSTEM_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_SYSTEM_EXPORTS) 38 | 39 | #define SFML_SYSTEM_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_SYSTEM_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_SYSTEM_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/System/NativeActivity.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_NATIVEACTIVITY_HPP 26 | #define SFML_NATIVEACTIVITY_HPP 27 | 28 | 29 | //////////////////////////////////////////////////////////// 30 | // Headers 31 | //////////////////////////////////////////////////////////// 32 | #include 33 | 34 | 35 | #if !defined(SFML_SYSTEM_ANDROID) 36 | #error NativeActivity.hpp: This header is Android only. 37 | #endif 38 | 39 | 40 | struct ANativeActivity; 41 | 42 | namespace sf 43 | { 44 | //////////////////////////////////////////////////////////// 45 | /// \ingroup system 46 | /// \brief Return a pointer to the Android native activity 47 | /// 48 | /// You shouldn't have to use this function, unless you want 49 | /// to implement very specific details, that SFML doesn't 50 | /// support, or to use a workaround for a known issue. 51 | /// 52 | /// \return Pointer to Android native activity structure 53 | /// 54 | /// \sfplatform{Android,SFML/System/NativeActivity.hpp} 55 | /// 56 | //////////////////////////////////////////////////////////// 57 | SFML_SYSTEM_API ANativeActivity* getNativeActivity(); 58 | 59 | } // namespace sf 60 | 61 | 62 | #endif // SFML_NATIVEACTIVITY_HPP 63 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/System/Sleep.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SLEEP_HPP 26 | #define SFML_SLEEP_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | #include 33 | 34 | 35 | namespace sf 36 | { 37 | //////////////////////////////////////////////////////////// 38 | /// \ingroup system 39 | /// \brief Make the current thread sleep for a given duration 40 | /// 41 | /// sf::sleep is the best way to block a program or one of its 42 | /// threads, as it doesn't consume any CPU power. 43 | /// 44 | /// \param duration Time to sleep 45 | /// 46 | //////////////////////////////////////////////////////////// 47 | void SFML_SYSTEM_API sleep(Time duration); 48 | 49 | } // namespace sf 50 | 51 | 52 | #endif // SFML_SLEEP_HPP 53 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/System/String.inl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | 26 | //////////////////////////////////////////////////////////// 27 | template 28 | String String::fromUtf8(T begin, T end) 29 | { 30 | String string; 31 | Utf8::toUtf32(begin, end, std::back_inserter(string.m_string)); 32 | return string; 33 | } 34 | 35 | 36 | //////////////////////////////////////////////////////////// 37 | template 38 | String String::fromUtf16(T begin, T end) 39 | { 40 | String string; 41 | Utf16::toUtf32(begin, end, std::back_inserter(string.m_string)); 42 | return string; 43 | } 44 | 45 | 46 | //////////////////////////////////////////////////////////// 47 | template 48 | String String::fromUtf32(T begin, T end) 49 | { 50 | String string; 51 | string.m_string.assign(begin, end); 52 | return string; 53 | } 54 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/System/ThreadLocalPtr.inl: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | 26 | namespace sf 27 | { 28 | //////////////////////////////////////////////////////////// 29 | template 30 | ThreadLocalPtr::ThreadLocalPtr(T* value) : 31 | ThreadLocal(value) 32 | { 33 | } 34 | 35 | 36 | //////////////////////////////////////////////////////////// 37 | template 38 | T& ThreadLocalPtr::operator *() const 39 | { 40 | return *static_cast(getValue()); 41 | } 42 | 43 | 44 | //////////////////////////////////////////////////////////// 45 | template 46 | T* ThreadLocalPtr::operator ->() const 47 | { 48 | return static_cast(getValue()); 49 | } 50 | 51 | 52 | //////////////////////////////////////////////////////////// 53 | template 54 | ThreadLocalPtr::operator T*() const 55 | { 56 | return static_cast(getValue()); 57 | } 58 | 59 | 60 | //////////////////////////////////////////////////////////// 61 | template 62 | ThreadLocalPtr& ThreadLocalPtr::operator =(T* value) 63 | { 64 | setValue(value); 65 | return *this; 66 | } 67 | 68 | 69 | //////////////////////////////////////////////////////////// 70 | template 71 | ThreadLocalPtr& ThreadLocalPtr::operator =(const ThreadLocalPtr& right) 72 | { 73 | setValue(right.getValue()); 74 | return *this; 75 | } 76 | 77 | } // namespace sf 78 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Window.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_SFML_WINDOW_HPP 26 | #define SFML_SFML_WINDOW_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | 48 | 49 | 50 | #endif // SFML_SFML_WINDOW_HPP 51 | 52 | //////////////////////////////////////////////////////////// 53 | /// \defgroup window Window module 54 | /// 55 | /// Provides OpenGL-based windows, and abstractions for 56 | /// events and input handling. 57 | /// 58 | //////////////////////////////////////////////////////////// 59 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Window/Export.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_WINDOW_EXPORT_HPP 26 | #define SFML_WINDOW_EXPORT_HPP 27 | 28 | //////////////////////////////////////////////////////////// 29 | // Headers 30 | //////////////////////////////////////////////////////////// 31 | #include 32 | 33 | 34 | //////////////////////////////////////////////////////////// 35 | // Define portable import / export macros 36 | //////////////////////////////////////////////////////////// 37 | #if defined(SFML_WINDOW_EXPORTS) 38 | 39 | #define SFML_WINDOW_API SFML_API_EXPORT 40 | 41 | #else 42 | 43 | #define SFML_WINDOW_API SFML_API_IMPORT 44 | 45 | #endif 46 | 47 | 48 | #endif // SFML_WINDOW_EXPORT_HPP 49 | -------------------------------------------------------------------------------- /pseuthe/extlibs/sfml/include/SFML/Window/WindowStyle.hpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////// 2 | // 3 | // SFML - Simple and Fast Multimedia Library 4 | // Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) 5 | // 6 | // This software is provided 'as-is', without any express or implied warranty. 7 | // In no event will the authors be held liable for any damages arising from the use of this software. 8 | // 9 | // Permission is granted to anyone to use this software for any purpose, 10 | // including commercial applications, and to alter it and redistribute it freely, 11 | // subject to the following restrictions: 12 | // 13 | // 1. The origin of this software must not be misrepresented; 14 | // you must not claim that you wrote the original software. 15 | // If you use this software in a product, an acknowledgment 16 | // in the product documentation would be appreciated but is not required. 17 | // 18 | // 2. Altered source versions must be plainly marked as such, 19 | // and must not be misrepresented as being the original software. 20 | // 21 | // 3. This notice may not be removed or altered from any source distribution. 22 | // 23 | //////////////////////////////////////////////////////////// 24 | 25 | #ifndef SFML_WINDOWSTYLE_HPP 26 | #define SFML_WINDOWSTYLE_HPP 27 | 28 | 29 | namespace sf 30 | { 31 | namespace Style 32 | { 33 | //////////////////////////////////////////////////////////// 34 | /// \ingroup window 35 | /// \brief Enumeration of the window styles 36 | /// 37 | //////////////////////////////////////////////////////////// 38 | enum 39 | { 40 | None = 0, //!< No border / title bar (this flag and all others are mutually exclusive) 41 | Titlebar = 1 << 0, //!< Title bar + fixed border 42 | Resize = 1 << 1, //!< Title bar + resizable border + maximize button 43 | Close = 1 << 2, //!< Title bar + close button 44 | Fullscreen = 1 << 3, //!< Fullscreen mode (this flag and all others are mutually exclusive) 45 | 46 | Default = Titlebar | Resize | Close //!< Default window style 47 | }; 48 | } 49 | 50 | } // namespace sf 51 | 52 | 53 | #endif // SFML_WINDOWSTYLE_HPP 54 | -------------------------------------------------------------------------------- /pseuthe/icon.rc: -------------------------------------------------------------------------------- 1 | 1 ICON pseuthe_icon.ico 2 | -------------------------------------------------------------------------------- /pseuthe/include/Affectors.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //affectors for particle systems 29 | 30 | #ifndef AFFECTORS_HPP_ 31 | #define AFFECTORS_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | struct Particle; 37 | struct ForceAffector 38 | { 39 | explicit ForceAffector(const sf::Vector2f& force); 40 | void operator()(Particle& p, float dt); 41 | void setRandom(const sf::Vector2f& rangeStart, const sf::Vector2f& rangeEnd); 42 | 43 | private: 44 | sf::Vector2f m_force; 45 | 46 | bool m_random; 47 | sf::Vector2f m_randomStart; 48 | sf::Vector2f m_randomEnd; 49 | }; 50 | 51 | struct ColourAffector 52 | { 53 | ColourAffector(const sf::Color& start, const sf::Color& end, float duration); 54 | void operator() (Particle& p, float dt); 55 | 56 | private: 57 | float m_duration; 58 | sf::Color m_start; 59 | sf::Color m_end; 60 | }; 61 | 62 | struct RotateAffector 63 | { 64 | explicit RotateAffector(float rotation); 65 | void operator() (Particle& p, float dt); 66 | 67 | private: 68 | float m_rotation; 69 | }; 70 | 71 | struct ScaleAffector 72 | { 73 | explicit ScaleAffector(const sf::Vector2f& scale); 74 | void operator() (Particle& p, float dt); 75 | private: 76 | sf::Vector2f m_scale; 77 | }; 78 | #endif //AFFECTORS_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/AudioManager.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | #ifndef AUDIO_MANAGER_HPP_ 29 | #define AUDIO_MANAGER_HPP_ 30 | 31 | #include 32 | #include 33 | 34 | class Message; 35 | class AudioManager final 36 | { 37 | public: 38 | AudioManager(); 39 | ~AudioManager() = default; 40 | AudioManager(const AudioManager&) = delete; 41 | const AudioManager& operator = (const AudioManager&) = delete; 42 | 43 | void update(float); 44 | void handleMessage(const Message&); 45 | 46 | void mute(bool); 47 | 48 | private: 49 | 50 | float m_fadeInTime; 51 | float m_currentFadeTime; 52 | 53 | MusicPlayer m_musicPlayer; 54 | SoundPlayer m_soundPlayer; 55 | 56 | enum SoundIds 57 | { 58 | SwitchFx = 0, 59 | HealthLost, 60 | HealthGained, 61 | Eating, 62 | AteJelly, 63 | Spawned, 64 | Size 65 | }; 66 | 67 | std::vector m_impactSounds; 68 | std::vector m_fxSounds; 69 | 70 | bool m_muted; 71 | }; 72 | 73 | #endif //AUDIO_MANAGER_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/BodypartController.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //script component for controlling body part behaviour 29 | 30 | #ifndef BODYPART_CONTROLLER_HPP_ 31 | #define BODYPART_CONTROLLER_HPP_ 32 | 33 | #include 34 | 35 | class PhysicsComponent; 36 | class AnimatedDrawable; 37 | class ParticleSystem; 38 | class BodypartController final : public Component 39 | { 40 | public: 41 | explicit BodypartController(MessageBus&); 42 | ~BodypartController() = default; 43 | 44 | Component::Type type() const override; 45 | void entityUpdate(Entity&, float) override; 46 | void handleMessage(const Message&) override; 47 | void onStart(Entity&) override; 48 | 49 | void setHealth(float); 50 | void setDecayRate(float); 51 | 52 | private: 53 | PhysicsComponent* m_physComponent; 54 | AnimatedDrawable* m_drawable; 55 | ParticleSystem* m_sparkles; 56 | ParticleSystem* m_echo; 57 | 58 | float m_health; 59 | float m_decayRate; 60 | bool m_paused; 61 | }; 62 | 63 | #endif //BODYPART_COPNTROLLER_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/CausticDrawable.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //emulates light rays as caustic effect 29 | 30 | #ifndef CAUSTIC_DRAWABLE_HPP_ 31 | #define CAUSTIC_DRAWABLE_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | #include 39 | 40 | class CausticDrawable final : public Component, public sf::Drawable 41 | { 42 | public: 43 | explicit CausticDrawable(MessageBus&); 44 | ~CausticDrawable() = default; 45 | CausticDrawable(const CausticDrawable&) = delete; 46 | const CausticDrawable& operator = (const CausticDrawable&) = delete; 47 | 48 | Component::Type type() const override; 49 | void entityUpdate(Entity&, float) override; 50 | void handleMessage(const Message&) override; 51 | 52 | private: 53 | 54 | class Ray : public sf::Transformable 55 | { 56 | public: 57 | Ray(); 58 | ~Ray() = default; 59 | std::vector vertices; 60 | void update(float); 61 | private: 62 | //wavetable for motion 63 | std::vector m_wavetable; 64 | int m_currentIndex; 65 | float m_amplitude; 66 | }; 67 | 68 | sf::VertexArray m_vertexArray; 69 | std::vector m_rays; 70 | ShaderResource m_shaders; 71 | sf::Shader* m_shader; 72 | 73 | void updateVertexArray(); 74 | void draw(sf::RenderTarget&, sf::RenderStates) const override; 75 | }; 76 | 77 | #endif //CAUSTIC_DRAWABLE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/CircleDrawable.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //a circle shape drawable component 29 | 30 | #ifndef CIRCLE_DRAWABLE_HPP_ 31 | #define CIRCLE_DRAWABLE_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | 37 | namespace sf 38 | { 39 | class Shader; 40 | } 41 | 42 | class CircleDrawable final : public Component, public sf::Drawable 43 | { 44 | public: 45 | using Ptr = std::unique_ptr; 46 | 47 | CircleDrawable(float radius, MessageBus&); 48 | ~CircleDrawable() = default; 49 | 50 | Component::Type type() const override; 51 | void entityUpdate(Entity&, float) override; 52 | void handleMessage(const Message&) override; 53 | 54 | void setColour(sf::Color); 55 | void setRadius(float); 56 | void setOutlineThickness(float); 57 | 58 | const sf::Color& getColour() const; 59 | 60 | void setShader(sf::Shader&); 61 | void setTexture(const sf::Texture&); 62 | void setNormalMap(const sf::Texture&); 63 | 64 | private: 65 | 66 | sf::CircleShape m_circleShape; 67 | sf::Shader* m_shader; 68 | const sf::Texture* m_normalMap; 69 | 70 | void draw(sf::RenderTarget& rt, sf::RenderStates states) const override; 71 | }; 72 | 73 | #endif //CIRCLE_DRAWABLE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/Component.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //abstract base class for entity components 29 | 30 | #ifndef COMPONENT_HPP_ 31 | #define COMPONENT_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | 38 | class Entity; 39 | class Message; 40 | class MessageBus; 41 | class Component 42 | { 43 | public: 44 | using Ptr = std::unique_ptr; 45 | 46 | enum class Type 47 | { 48 | Drawable, 49 | Physics, 50 | Script 51 | }; 52 | 53 | explicit Component(MessageBus&); 54 | virtual ~Component(); 55 | Component(const Component&) = delete; 56 | const Component& operator = (const Component&) = delete; 57 | 58 | virtual Type type() const = 0; 59 | //this is called once per frame by the component's parent entity 60 | //providing the opportinuty to update each other 61 | virtual void entityUpdate(Entity&, float) = 0; 62 | virtual void handleMessage(const Message&) = 0; 63 | 64 | //called when the component is first added to an entity 65 | virtual void onStart(Entity&); 66 | 67 | virtual void destroy(); 68 | bool destroyed() const; 69 | 70 | void setParentUID(sf::Uint64 uid); 71 | sf::Uint64 getParentUID() const; 72 | 73 | void setName(const std::string&); 74 | const std::string& getName() const; 75 | 76 | protected: 77 | void sendMessage(const Message&); 78 | MessageBus& getMessageBus() const; 79 | 80 | private: 81 | MessageBus& m_messageBus; 82 | bool m_destroyed; 83 | 84 | sf::Uint64 m_parentUID; 85 | 86 | std::string m_name; 87 | }; 88 | 89 | #endif //COMPONENT_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/EchoDrawable.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //draws an expanding 'echo' 29 | 30 | #ifndef ECHO_DRAWABLE_HPP_ 31 | #define ECHO_DRAWABLE_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | 38 | class EchoDrawable final : public Component, public sf::Drawable 39 | { 40 | public: 41 | using Ptr = std::unique_ptr; 42 | 43 | EchoDrawable(float, MessageBus&); 44 | ~EchoDrawable() = default; 45 | 46 | Component::Type type() const override; 47 | void entityUpdate(Entity&, float) override; 48 | void handleMessage(const Message&) override; 49 | 50 | void setColour(const sf::Color&); 51 | 52 | private: 53 | 54 | sf::CircleShape m_circleShape; 55 | sf::Color m_colour; 56 | float m_lifetime; 57 | 58 | void draw(sf::RenderTarget&, sf::RenderStates) const override; 59 | }; 60 | 61 | #endif //ECHO_DRAWABLE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/FadeDrawable.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //full screen rectangle whih fades to nothing and destroys itself 29 | 30 | #ifndef FADE_DRAWABLE_HPP_ 31 | #define FADE_DRAWABLE_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | 38 | class FadeDrawable final : public Component, public sf::Drawable 39 | { 40 | public: 41 | explicit FadeDrawable(MessageBus&); 42 | ~FadeDrawable() = default; 43 | FadeDrawable(const FadeDrawable&) = delete; 44 | const FadeDrawable& operator = (const FadeDrawable&) = delete; 45 | 46 | Component::Type type() const override; 47 | void entityUpdate(Entity&, float) override; 48 | void handleMessage(const Message&) override; 49 | 50 | private: 51 | 52 | sf::RectangleShape m_rectangleShape; 53 | float m_currentFadeTime; 54 | float m_delayTime; 55 | 56 | void draw(sf::RenderTarget&, sf::RenderStates) const override; 57 | }; 58 | 59 | 60 | #endif //FADE_DRAWABLE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/FileSystem.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //static functions for cross platform file handling 29 | 30 | #ifndef FILE_SYS_HPP_ 31 | #define FILE_SYS_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | class FileSystem final 37 | { 38 | public: 39 | 40 | static std::vector listFiles(std::string path); 41 | static std::string getFileExtension(const std::string& path); 42 | 43 | private: 44 | 45 | }; 46 | 47 | #endif //FILE_SYS_H_ -------------------------------------------------------------------------------- /pseuthe/include/GameController.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //observes the scene and controls spawning of entities affecting game play 29 | 30 | #ifndef GAME_CONTROLLER_HPP_ 31 | #define GAME_CONTROLLER_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | 38 | #include 39 | #include 40 | #include 41 | 42 | class Scene; 43 | class MessageBus; 44 | class Message; 45 | class App; 46 | class PhysicsWorld; 47 | class PhysicsComponent; 48 | class TextDrawable; 49 | class Entity; 50 | class GameController final 51 | { 52 | public: 53 | GameController(Scene&, MessageBus&, App&, PhysicsWorld&); 54 | ~GameController() = default; 55 | GameController(const GameController&) = delete; 56 | const GameController& operator = (const GameController&) = delete; 57 | 58 | void update(float); 59 | void handleMessage(const Message&); 60 | 61 | 62 | private: 63 | Scene& m_scene; 64 | MessageBus& m_messageBus; 65 | App& m_appInstance; 66 | PhysicsWorld& m_physicsWorld; 67 | 68 | Entity* m_player; 69 | 70 | float m_constraintLength; 71 | float m_nextPartSize; 72 | float m_nextPartScale; 73 | std::vector m_playerPhysicsComponents; 74 | 75 | std::array m_planktonSpawns; 76 | sf::Uint8 m_planktonCount; 77 | float m_spawnTime; 78 | sf::Uint8 m_initialPartCount; 79 | float m_partDecayRate; 80 | float m_speedMultiplier; 81 | 82 | ControlType m_controlType; 83 | 84 | Difficulty m_difficulty; 85 | void setDifficulty(Difficulty); 86 | 87 | void spawnPlayer(); 88 | void addBodyPart(float health = 100.f); 89 | void spawnPlankton(); 90 | 91 | TextDrawable* m_scoreText; 92 | TextDrawable* m_highScoreText; 93 | TextDrawable* m_initialsText; 94 | bool m_paused; 95 | void resetScore(); 96 | std::string getName() const; 97 | }; 98 | 99 | #endif //GAME_CONTROLLER_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/GameState.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //main state of the game 29 | 30 | #ifndef GAME_STATE_HPP_ 31 | #define GAME_STATE_HPP_ 32 | 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | 40 | #include 41 | #include 42 | #include 43 | 44 | #include 45 | 46 | namespace sf 47 | { 48 | class Color; 49 | } 50 | 51 | class GameState final : public State 52 | { 53 | public: 54 | GameState(StateStack& stateStack, Context context); 55 | ~GameState() = default; 56 | 57 | bool update(float dt) override; 58 | void draw() override; 59 | bool handleEvent(const sf::Event& evt) override; 60 | void handleMessage(const Message&) override; 61 | 62 | private : 63 | 64 | MessageBus& m_messageBus; 65 | Scene m_scene; 66 | PhysicsWorld m_physWorld; 67 | AudioManager m_audioManager; 68 | GameController m_gameController; 69 | 70 | sf::RectangleShape m_vignette; 71 | sf::Text m_versionText; 72 | 73 | sf::Shader m_orbShader; 74 | Entity::Ptr createEntity(); 75 | }; 76 | 77 | #endif //GAME_STATE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/GradientDrawable.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //uses a vertex array to create a gradient 29 | 30 | #ifndef GRADIENT_HPP_ 31 | #define GRADIENT_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | 38 | class GradientDrawable final : public Component, public sf::Drawable, public sf::Transformable 39 | { 40 | public: 41 | using Ptr = std::unique_ptr; 42 | 43 | explicit GradientDrawable(MessageBus&); 44 | ~GradientDrawable() = default; 45 | 46 | Component::Type type() const override; 47 | void entityUpdate(Entity&, float) override; 48 | void handleMessage(const Message&) override; 49 | 50 | private: 51 | 52 | sf::VertexArray m_vertexArray; 53 | sf::Color m_colour; 54 | 55 | float m_currentTime; 56 | int m_colourIndexA, m_colourIndexB; 57 | 58 | void draw(sf::RenderTarget&, sf::RenderStates) const override; 59 | }; 60 | 61 | #endif //GRADIENT_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/HelpState.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //displays the help menu 29 | 30 | #ifndef HELP_STATE_HPP_ 31 | #define HELP_STATE_HPP_ 32 | 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | 39 | #include 40 | #include 41 | #include 42 | 43 | class MessageBus; 44 | class HelpState final : public State 45 | { 46 | public: 47 | HelpState(StateStack&, Context); 48 | ~HelpState() = default; 49 | 50 | bool update(float) override; 51 | void draw() override; 52 | bool handleEvent(const sf::Event&) override; 53 | void handleMessage(const Message&) override; 54 | 55 | private: 56 | 57 | enum class Mode 58 | { 59 | FadeIn, 60 | Static, 61 | FadeOut 62 | } m_mode; 63 | 64 | MessageBus& m_messageBus; 65 | PhysicsWorld m_physWorld; 66 | Entity m_rootNode; 67 | 68 | sf::Sprite m_menuSprite; 69 | sf::RectangleShape m_rectangleShape; 70 | std::vector m_texts; 71 | 72 | Ticker m_ticker; 73 | 74 | float m_fadeTime; 75 | 76 | void addText(); 77 | void addPlankton(PlanktonController::Type); 78 | }; 79 | 80 | #endif //HELP_STATE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/InputComponent.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //handles real time input for player 29 | 30 | #ifndef INPUT_COMPONENT_HPP_ 31 | #define INPUT_COMPONENT_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | 38 | #include 39 | 40 | class PhysicsComponent; 41 | class AnimatedDrawable; 42 | class ParticleSystem; 43 | class TailDrawable; 44 | class InputComponent final : public Component 45 | { 46 | public: 47 | 48 | explicit InputComponent(MessageBus&); 49 | ~InputComponent() = default; 50 | 51 | Component::Type type() const override; 52 | void entityUpdate(Entity&, float) override; 53 | void handleMessage(const Message&) override; 54 | void onStart(Entity&) override; 55 | 56 | void setControlType(ControlType); 57 | void setControllerEnabled(bool); 58 | 59 | private: 60 | using ControlFunction = std::function; 61 | 62 | PhysicsComponent* m_physicsComponent; 63 | AnimatedDrawable* m_headDrawable; 64 | AnimatedDrawable* m_mouthDrawable; 65 | AnimatedDrawable* m_wigglerA; 66 | AnimatedDrawable* m_wigglerB; 67 | ParticleSystem* m_trailParticles; 68 | ParticleSystem* m_sparkleParticles; 69 | ParticleSystem* m_echo; 70 | TailDrawable* m_tail; 71 | 72 | float m_health; 73 | bool m_parseInput; 74 | bool m_controllerEnabled; 75 | bool m_mouseClickPending; 76 | sf::Vector2f m_mouseClick; 77 | 78 | float m_mass; 79 | float m_invMass; 80 | 81 | ControlFunction getKeyboard; 82 | ControlFunction getController; 83 | 84 | sf::Vector2f getKeyboardClassic(float); 85 | sf::Vector2f getControllerClassic(float); 86 | 87 | sf::Vector2f getKeyboardArcade(float); 88 | sf::Vector2f getControllerArcade(float); 89 | 90 | sf::Vector2f getMouse(float, const sf::Vector2f&); 91 | }; 92 | 93 | #endif //INPUT_COMPONENT_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/LightPosition.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //used to control the entity with light attached 29 | 30 | #ifndef LIGHT_POSITION_HPP_ 31 | #define LIGHT_POSITION_HPP_ 32 | 33 | #include 34 | 35 | class LightPosition final : public Component 36 | { 37 | public: 38 | explicit LightPosition(MessageBus&); 39 | ~LightPosition() = default; 40 | LightPosition(const LightPosition&) = delete; 41 | const LightPosition& operator = (const LightPosition&) = delete; 42 | 43 | Component::Type type() const override; 44 | void entityUpdate(Entity&, float) override; 45 | void handleMessage(const Message&) override; 46 | }; 47 | 48 | #endif //LIGHT_POSITION_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/MakeUnique.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //an implementation of c++14's std::make_unique 29 | 30 | #ifndef MAKEUNIQUE_HPP_ 31 | #define MAKEUNIQUE_HPP_ 32 | 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | #if __cplusplus == 201103L 39 | 40 | namespace std { 41 | 42 | template struct _Unique_if 43 | { 44 | typedef unique_ptr _Single_object; 45 | }; 46 | 47 | template struct _Unique_if 48 | { 49 | typedef unique_ptr _Unknown_bound; 50 | }; 51 | 52 | template struct _Unique_if 53 | { 54 | typedef void _Known_bound; 55 | }; 56 | 57 | template 58 | typename _Unique_if::_Single_object 59 | make_unique(Args&&... args) 60 | { 61 | return unique_ptr(new T(std::forward(args)...)); 62 | } 63 | 64 | template 65 | typename _Unique_if::_Unknown_bound 66 | make_unique(size_t n) 67 | { 68 | typedef typename remove_extent::type U; 69 | return unique_ptr(new U[n]()); 70 | } 71 | 72 | template 73 | typename _Unique_if::_Known_bound 74 | make_unique(Args&&...) = delete; 75 | } 76 | 77 | #endif 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /pseuthe/include/MenuState.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //initial menu state 29 | 30 | #ifndef MENU_STATE_HPP_ 31 | #define MENU_STATE_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | 39 | class MessageBus; 40 | class MenuState final : public State 41 | { 42 | public: 43 | MenuState(StateStack& stateStack, Context context); 44 | ~MenuState() = default; 45 | 46 | bool update(float dt) override; 47 | void draw() override; 48 | bool handleEvent(const sf::Event& evt) override; 49 | void handleMessage(const Message&) override; 50 | 51 | private: 52 | MessageBus& m_messageBus; 53 | sf::Sprite m_menuSprite; 54 | sf::Sprite m_cursorSprite; 55 | std::vector m_texts; 56 | 57 | ui::Container m_uiContainer; 58 | 59 | void buildMenu(const sf::Font&); 60 | void startGame(); 61 | }; 62 | 63 | #endif //MENU_STATE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/Music.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //plays music as requested by the current state 29 | 30 | #ifndef MUSIC_HPP_ 31 | #define MUSIC_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | 37 | class MusicPlayer final : private sf::NonCopyable 38 | { 39 | public: 40 | MusicPlayer(); 41 | ~MusicPlayer() = default; 42 | MusicPlayer(const MusicPlayer&) = delete; 43 | const MusicPlayer& operator = (const MusicPlayer&) = delete; 44 | 45 | void play(const std::string& file, bool loop = false); 46 | void stop(); 47 | void setPaused(bool paused); 48 | bool playing() const; 49 | void setVolume(float volume); 50 | float getVolume() const; 51 | 52 | void update(float); 53 | 54 | private: 55 | 56 | float m_volume; 57 | sf::Music m_music; 58 | }; 59 | 60 | 61 | #endif //MUSIC_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/OrbController.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //handles logic for the floating orbs 29 | 30 | #ifndef ORB_CONTROLLER_HPP_ 31 | #define ORB_CONTROLLER_HPP_ 32 | 33 | #include 34 | 35 | class ParticleSystem; 36 | class AnimatedDrawable; 37 | class PhysicsComponent; 38 | class OrbController final : public Component 39 | { 40 | public: 41 | explicit OrbController(MessageBus&); 42 | ~OrbController() = default; 43 | 44 | Component::Type type() const override; 45 | void entityUpdate(Entity&, float) override; 46 | void handleMessage(const Message&) override; 47 | void onStart(Entity&) override; 48 | 49 | private: 50 | 51 | ParticleSystem* m_particleSystem; 52 | AnimatedDrawable* m_drawable; 53 | PhysicsComponent* m_physComponent; 54 | }; 55 | 56 | #endif //ORB_CONTROLLER_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/Particle.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2014 - 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | #ifndef PARTICLE_HPP_ 29 | #define PARTICLE_HPP_ 30 | 31 | #include 32 | #include 33 | #include 34 | 35 | struct Particle final : public sf::Transformable 36 | { 37 | enum class Type 38 | { 39 | Trail, 40 | Echo, 41 | Sparkle, 42 | Ident 43 | }; 44 | 45 | sf::Vector2f velocity; 46 | sf::Color colour; 47 | float rotation = 0.f; 48 | float lifetime = 0.f; 49 | sf::FloatRect textureRect; 50 | }; 51 | 52 | #endif //PARTICLE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/ParticleField.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2014 - 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //creates a starfield type effect as a drawable component 29 | 30 | #ifndef PARTICLE_FIELD_HPP_ 31 | #define PARTICLE_FIELD_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | 39 | #include 40 | 41 | class ParticleField final : public Component, public sf::Drawable 42 | { 43 | public: 44 | ParticleField(const sf::FloatRect&, MessageBus&); 45 | ~ParticleField() = default; 46 | ParticleField(const ParticleField&) = delete; 47 | const ParticleField& operator = (const ParticleField&) = delete; 48 | 49 | Component::Type type() const override; 50 | void entityUpdate(Entity&, float) override; 51 | void handleMessage(const Message&) override; 52 | 53 | void setBlendMode(sf::BlendMode); 54 | void setTexture(sf::Texture&); 55 | private: 56 | 57 | std::vector m_particles; 58 | sf::BlendMode m_blendMode; 59 | sf::FloatRect m_bounds; 60 | sf::VertexArray m_vertices; 61 | sf::Texture* m_texture; 62 | 63 | void addVertex(const sf::Vector2f&, float, float, const sf::Color&); 64 | void updateVertices(); 65 | void draw(sf::RenderTarget&, sf::RenderStates) const override; 66 | }; 67 | 68 | #endif //PARTICLE_FIELD_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/PhysicsWorld.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //simulates the physics and applies the results to physics components 29 | 30 | #ifndef PHYS_WORLD_HPP_ 31 | #define PHYS_WORLD_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | 38 | class PhysicsWorld final 39 | { 40 | public: 41 | explicit PhysicsWorld(MessageBus&); 42 | ~PhysicsWorld() = default; 43 | PhysicsWorld(const PhysicsWorld&) = delete; 44 | const PhysicsWorld& operator = (const PhysicsWorld&) = delete; 45 | 46 | PhysicsComponent::Ptr addBody(float radius); 47 | PhysicsComponent::Ptr attachBody(float radius, float constraintLength, PhysicsComponent*); 48 | 49 | const sf::FloatRect& getWorldSize() const; 50 | 51 | void handleMessage(const Message&); 52 | void update(float); 53 | 54 | private: 55 | using Collision = std::pair; 56 | 57 | std::vector m_constraints; 58 | std::vector m_bodies; 59 | std::set m_collisions; 60 | 61 | MessageBus& m_messageBus; 62 | }; 63 | 64 | #endif //PHYS_WORLD_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/PlanktonController.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //script component for plankton behaviour 29 | 30 | #ifndef PLANKTON_CONTROLLER_HPP_ 31 | #define PLANKTON_CONTROLLER_HPP_ 32 | 33 | #include 34 | 35 | class AnimatedDrawable; 36 | class PhysicsComponent; 37 | class ParticleSystem; 38 | class TailDrawable; 39 | class PlanktonController final : public Component 40 | { 41 | public: 42 | enum class Type 43 | { 44 | Good = 0, 45 | Bad, 46 | /*Ugly*/Bonus, 47 | UberLife 48 | }; 49 | 50 | explicit PlanktonController(MessageBus&); 51 | ~PlanktonController() = default; 52 | 53 | Component::Type type() const override; 54 | void entityUpdate(Entity&, float) override; 55 | void handleMessage(const Message&) override; 56 | void onStart(Entity&) override; 57 | 58 | void setType(Type); 59 | 60 | void setEnemyId(sf::Uint64); 61 | void setDecayRate(float); 62 | 63 | void setColourblind(bool); 64 | private: 65 | 66 | enum Flags 67 | { 68 | HealthHit = 0x1, 69 | RequestRotation = 0x2, 70 | Suicide = 0x4, 71 | TouchingPlayer = 0x8 72 | }; 73 | sf::Uint32 m_flags; 74 | 75 | Type m_type; 76 | PhysicsComponent* m_physComponent; 77 | AnimatedDrawable* m_drawable; 78 | ParticleSystem* m_trail; 79 | ParticleSystem* m_ident; 80 | TailDrawable* m_tail; 81 | 82 | float m_health; 83 | sf::Uint64 m_enemyId; 84 | float m_decayRate; 85 | 86 | float m_targetRotation; 87 | 88 | bool m_paused; 89 | bool m_colourblind; 90 | }; 91 | 92 | 93 | #endif //PLANKTON_CONTROLLER_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/PostBloom.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //creates a 'bloom' effect via post process 29 | 30 | #ifndef POST_BLOOM_HPP_ 31 | #define POST_BLOOM_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | 39 | #include 40 | 41 | class PostBloom final : public PostProcess 42 | { 43 | public: 44 | PostBloom(); 45 | 46 | void apply(const sf::RenderTexture&, sf::RenderTarget&) override; 47 | 48 | private: 49 | using RenderTextureArray = std::array; 50 | 51 | ShaderResource m_shaderResource; 52 | sf::RenderTexture m_brightnessTexture; 53 | RenderTextureArray m_firstPassTextures; 54 | RenderTextureArray m_secondPassTextures; 55 | 56 | void initTextures(const sf::Vector2u&); 57 | void filterBright(const sf::RenderTexture&, sf::RenderTexture&); 58 | void blurMultipass(RenderTextureArray&); 59 | void blur(const sf::RenderTexture&, sf::RenderTexture&, const sf::Vector2f&); 60 | void downSample(const sf::RenderTexture&, sf::RenderTexture&); 61 | void add(const sf::RenderTexture&, const sf::RenderTexture&, sf::RenderTarget&); 62 | }; 63 | 64 | #endif //POST_BLOOM_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/PostChromeAb.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //simulates chromatic aberration 29 | 30 | #ifndef POST_CHROMEAB_HPP_ 31 | #define POST_CHROMEAB_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | 38 | class PostChromeAb final : public PostProcess 39 | { 40 | public: 41 | PostChromeAb(); 42 | 43 | void apply(const sf::RenderTexture&, sf::RenderTarget&) override; 44 | void update(float); 45 | 46 | private: 47 | //ShaderResource m_shaderResource; 48 | sf::Shader m_shader; 49 | }; 50 | 51 | #endif //POST_CHROMEAB_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/PostProcess.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //abstract base class for full screen post process effects 29 | 30 | #ifndef POST_PROCESS_HPP_ 31 | #define POST_PROCESS_HPP_ 32 | 33 | namespace sf 34 | { 35 | class RenderTarget; 36 | class RenderTexture; 37 | class Shader; 38 | } 39 | 40 | class PostProcess 41 | { 42 | public: 43 | PostProcess(); 44 | virtual ~PostProcess() = default; 45 | PostProcess(const PostProcess&) = delete; 46 | const PostProcess& operator = (const PostProcess&) = delete; 47 | 48 | virtual void apply(const sf::RenderTexture&, sf::RenderTarget&) = 0; 49 | 50 | protected: 51 | static void applyShader(const sf::Shader&, sf::RenderTarget&); 52 | }; 53 | 54 | 55 | #endif //POST_PROCESS_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/Scene.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //root class containing scene entities 29 | 30 | #ifndef SCENE_HPP_ 31 | #define SCENE_HPP_ 32 | 33 | #include 34 | #include 35 | #include 36 | 37 | #include 38 | 39 | #include 40 | 41 | class Scene final : public sf::Drawable 42 | { 43 | public: 44 | enum Layer 45 | { 46 | BackRear = 0, 47 | BackMiddle, 48 | BackFront, 49 | FrontRear, 50 | FrontMiddle, 51 | FrontFront, 52 | UI, 53 | Count 54 | }; 55 | 56 | explicit Scene(MessageBus&); 57 | ~Scene() = default; 58 | Scene(const Scene&) = delete; 59 | const Scene& operator = (const Scene&) = delete; 60 | 61 | void update(float); 62 | void handleMessage(const Message&); 63 | void addEntity(Entity::Ptr&, Layer); 64 | Entity& getLayer(Layer); 65 | 66 | void setView(const sf::View& v); 67 | 68 | private: 69 | std::vector m_layers; 70 | 71 | int m_collisionCount; 72 | bool m_countCollisions; 73 | MessageBus& m_messageBus; 74 | 75 | mutable sf::RenderTexture m_sceneBufferA; 76 | mutable sf::RenderTexture m_sceneBufferB; 77 | mutable PostBloom m_bloomEffect; 78 | mutable PostChromeAb m_chromeAbEffect; 79 | 80 | void draw(sf::RenderTarget&, sf::RenderStates) const override; 81 | 82 | }; 83 | 84 | #endif //SCENE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/Score.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //read / write score data 29 | 30 | #ifndef SCORES_HPP_ 31 | #define SCORES_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | 38 | class Scores final 39 | { 40 | public: 41 | struct Chunk 42 | { 43 | std::size_t offset; 44 | std::size_t size; 45 | }; 46 | 47 | struct Header 48 | { 49 | int ident; 50 | int version; 51 | Chunk chunks[3]; 52 | }; 53 | 54 | struct Item 55 | { 56 | char name[21]; 57 | float score; 58 | std::size_t hash; 59 | }; 60 | 61 | Scores() = default; 62 | ~Scores() = default; 63 | Scores(const Scores&) = delete; 64 | const Scores& operator = (const Scores&) = delete; 65 | 66 | void load(); 67 | void save(); 68 | int add(const std::string&, float, Difficulty); 69 | 70 | const std::vector& getScores(Difficulty) const; 71 | 72 | private: 73 | std::vector m_easyScores; 74 | std::vector m_mediumScores; 75 | std::vector m_hardScores; 76 | }; 77 | 78 | #endif //SCORES_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/ScoreState.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //shows score summary 29 | 30 | #ifndef SCORE_STATE_HPP_ 31 | #define SCORE_STATE_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | 39 | class MessageBus; 40 | class ScoreState final : public State 41 | { 42 | public: 43 | ScoreState(StateStack& stateStack, Context context); 44 | ~ScoreState() = default; 45 | 46 | bool update(float dt) override; 47 | void draw() override; 48 | bool handleEvent(const sf::Event& evt) override; 49 | void handleMessage(const Message&) override; 50 | 51 | private: 52 | MessageBus& m_messageBus; 53 | sf::Sprite m_menuSprite; 54 | sf::Sprite m_cursorSprite; 55 | std::vector m_texts; 56 | 57 | ui::Container m_uiContainer; 58 | 59 | void buildMenu(const sf::Font&, const sf::Font&); 60 | void closeMenu(); 61 | }; 62 | 63 | #endif //SCORE_STATE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/ShaderResource.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //resource for caching shaders 29 | 30 | #ifndef SHADER_RESOURCE_HPP_ 31 | #define SHADER_RESOURCE_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | 38 | namespace sf 39 | { 40 | class Shader; 41 | } 42 | 43 | class ShaderResource final 44 | { 45 | public: 46 | 47 | ShaderResource(); 48 | ~ShaderResource() = default; 49 | ShaderResource(const ShaderResource&) = delete; 50 | const ShaderResource& operator = (const ShaderResource&) = delete; 51 | 52 | sf::Shader& get(Shader::Type); 53 | void preload(Shader::Type, const std::string&, const std::string&); 54 | 55 | private: 56 | std::map> m_shaders; 57 | }; 58 | 59 | #endif //SHADER_RESOURCE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/SoundPlayer.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //plays a given sound effect 29 | 30 | #ifndef SOUND_PLAYER_HPP_ 31 | #define SOUND_PLAYER_HPP_ 32 | 33 | #include 34 | #include 35 | #include 36 | 37 | #include 38 | #include 39 | 40 | class SoundPlayer final 41 | { 42 | public: 43 | 44 | SoundPlayer(); 45 | ~SoundPlayer() = default; 46 | SoundPlayer(const SoundPlayer&) = delete; 47 | const SoundPlayer& operator = (const SoundPlayer&) = delete; 48 | 49 | void update(); 50 | void play(const sf::SoundBuffer&, bool = false); 51 | 52 | void setListenerPosition(const sf::Vector2f& position); 53 | sf::Vector2f getListenerPosition() const; 54 | 55 | static void setVolume(float volume); 56 | static float getVolume(); 57 | 58 | private: 59 | 60 | std::list m_sounds; 61 | 62 | void flushSounds(); 63 | }; 64 | 65 | #endif //SOUND_PLAYER_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/State.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //abstract base class for game states 29 | 30 | #ifndef STATE_HPP_ 31 | #define STATE_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | 37 | #include 38 | 39 | namespace sf 40 | { 41 | class Event; 42 | class RenderWindow; 43 | } 44 | 45 | class StateStack; 46 | class App; 47 | class Message; 48 | class State 49 | { 50 | public: 51 | using Ptr = std::unique_ptr; 52 | 53 | struct Context 54 | { 55 | Context(sf::RenderWindow& renderWindow, App& app); 56 | sf::RenderWindow& renderWindow; 57 | App& appInstance; 58 | sf::View defaultView; 59 | }; 60 | 61 | State(StateStack& stateStack, Context context); 62 | virtual ~State() = default; 63 | State(const State&) = delete; 64 | const State& operator =(const State&) = delete; 65 | 66 | virtual bool handleEvent(const sf::Event& evt) = 0; 67 | virtual void handleMessage(const Message&) = 0; 68 | virtual bool update(float dt) = 0; 69 | virtual void draw() = 0; 70 | 71 | void setContext(Context); 72 | 73 | protected: 74 | void requestStackPush(States::ID id); 75 | void requestStackPop(); 76 | void requestStackClear(); 77 | 78 | Context getContext() const; 79 | 80 | //TODO will we need loading screen? 81 | 82 | private: 83 | StateStack& m_stateStack; 84 | Context m_context; 85 | 86 | 87 | }; 88 | 89 | #endif //STATE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/StateIds.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | #ifndef STATE_IDS_HPP_ 29 | #define STATE_IDS_HPP_ 30 | 31 | namespace States 32 | { 33 | enum class ID 34 | { 35 | None, 36 | Main, 37 | Menu, 38 | Score, 39 | Help, 40 | Title 41 | }; 42 | } 43 | 44 | //TODO there should be a more intuitive place to put these 45 | enum class Difficulty 46 | { 47 | Easy, 48 | Medium, 49 | Hard 50 | }; 51 | 52 | enum class ControlType 53 | { 54 | Classic, 55 | Arcade 56 | }; 57 | 58 | #endif //STATE_IDS_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/StateStack.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //stack of game states 29 | 30 | #ifndef STATESTACK_HPP_ 31 | #define STATESTACK_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | #include 39 | 40 | namespace sf 41 | { 42 | class RenderWindow; 43 | class Event; 44 | } 45 | 46 | class StateStack final 47 | { 48 | public: 49 | enum class Action 50 | { 51 | Push, 52 | Pop, 53 | Clear 54 | }; 55 | 56 | explicit StateStack(State::Context context); 57 | ~StateStack() = default; 58 | StateStack(const StateStack&) = delete; 59 | const StateStack& operator = (const StateStack&) = delete; 60 | 61 | template 62 | void registerState(States::ID id) 63 | { 64 | m_factories[id] = [this]() 65 | { 66 | return std::make_unique(*this, m_context); 67 | }; 68 | } 69 | 70 | void update(float dt); 71 | void draw(); 72 | void handleEvent(const sf::Event& evt); 73 | void handleMessage(const Message&); 74 | 75 | void pushState(States::ID id); 76 | void popState(); 77 | void clearStates(); 78 | 79 | bool empty() const; 80 | 81 | sf::View updateView(); 82 | 83 | void applyPendingChanges(); 84 | 85 | private: 86 | 87 | struct Pendingchange 88 | { 89 | explicit Pendingchange(Action, States::ID id = States::ID::None); 90 | Action action; 91 | States::ID id; 92 | }; 93 | 94 | std::vector m_stack; 95 | std::vector m_pendingChanges; 96 | State::Context m_context; 97 | std::map> m_factories; 98 | 99 | State::Ptr createState(States::ID id); 100 | 101 | }; 102 | 103 | #endif //STATESTACK_HPP_ 104 | -------------------------------------------------------------------------------- /pseuthe/include/TextDrawable.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //makes a Text instance component compatible 29 | 30 | #ifndef TEXT_DRAWABLE_HPP_ 31 | #define TEXT_DRAWABLE_HPP_ 32 | 33 | #include 34 | 35 | #include 36 | 37 | class TextDrawable final : public Component, public sf::Text 38 | { 39 | public: 40 | explicit TextDrawable(MessageBus&); 41 | ~TextDrawable() = default; 42 | 43 | Component::Type type() const override; 44 | void entityUpdate(Entity&, float) override; 45 | void handleMessage(const Message&) override; 46 | 47 | private: 48 | 49 | }; 50 | 51 | 52 | #endif //TEXT_DRAWABLE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/Ticker.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | #ifndef TICKER_HPP_ 29 | #define TICKER_HPP_ 30 | 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | 37 | #include 38 | 39 | class Ticker final : private sf::NonCopyable, public sf::Drawable, public sf::Transformable 40 | { 41 | public: 42 | explicit Ticker(sf::Font& font); 43 | ~Ticker() = default; 44 | 45 | void update(float dt); 46 | void addItem(const std::string& text); 47 | void setSpeed(float speed); 48 | void setSize(sf::FloatRect size); 49 | std::size_t getMessageCount() const; 50 | void setColour(const sf::Color&); 51 | 52 | private: 53 | sf::Font& m_font; 54 | std::vector m_messages; 55 | sf::FloatRect m_size; 56 | float m_speed; 57 | float m_totalWidth; 58 | 59 | void draw(sf::RenderTarget& rt, sf::RenderStates states)const override; 60 | }; 61 | 62 | 63 | #endif //TICKER_H_ -------------------------------------------------------------------------------- /pseuthe/include/TitleState.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | //displays splash screen at startup 29 | 30 | #ifndef TITLE_STATE_HPP_ 31 | #define TITLE_STATE_HPP_ 32 | 33 | #include 34 | #include 35 | 36 | #include 37 | #include 38 | #include 39 | 40 | class MessageBus; 41 | class TitleState final : public State 42 | { 43 | public: 44 | TitleState(StateStack&, Context); 45 | ~TitleState() = default; 46 | 47 | bool handleEvent(const sf::Event&) override; 48 | void handleMessage(const Message&) override; 49 | bool update(float dt) override; 50 | void draw() override; 51 | 52 | private: 53 | sf::Sprite m_sprite; 54 | sf::RectangleShape m_rectangleShape; 55 | sf::Shader m_noiseShader; 56 | sf::Shader m_lineShader; 57 | float m_windowRatio; 58 | 59 | MessageBus& m_mesageBus; 60 | 61 | float m_fadeTime; 62 | enum class Fade 63 | { 64 | In, 65 | Hold, 66 | Out 67 | }m_fade; 68 | 69 | SoundPlayer m_soundPlayer; 70 | sf::SoundBuffer m_startupSound; 71 | }; 72 | 73 | 74 | #endif //TITLE_STATE_HPP_ -------------------------------------------------------------------------------- /pseuthe/include/UIButton.hpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | Matt Marchant 2015 3 | http://trederia.blogspot.com 4 | 5 | pseuthe Zlib license. 6 | 7 | This software is provided 'as-is', without any express or 8 | implied warranty. In no event will the authors be held 9 | liable for any damages arising from the use of this software. 10 | 11 | Permission is granted to anyone to use this software for any purpose, 12 | including commercial applications, and to alter it and redistribute 13 | it freely, subject to the following restrictions: 14 | 15 | 1. The origin of this software must not be misrepresented; 16 | you must not claim that you wrote the original software. 17 | If you use this software in a product, an acknowledgment 18 | in the product documentation would be appreciated but 19 | is not required. 20 | 21 | 2. Altered source versions must be plainly marked as such, 22 | and must not be misrepresented as being the original software. 23 | 24 | 3. This notice may not be removed or altered from any 25 | source distribution. 26 | *********************************************************************/ 27 | 28 | #ifndef UI_BUTTON_HPP_ 29 | #define UI_BUTTON_HPP_ 30 | 31 | #include 32 | #include 33 | 34 | #include 35 | #include 36 | 37 | #include 38 | #include 39 | #include 40 | #include 41 | 42 | namespace ui 43 | { 44 | class Button final : public Control 45 | { 46 | public: 47 | using Ptr = std::shared_ptr