This file is dedicated to the R-Type client binary.
This is a binary that will provide a graphical interface to the program and allow the users to be able to interract with the game.
This section focuses on compiling the client binary without compiling the whole project (this means, without compiling the server).
Wether you are on Mac, Windows or Linux, the lines are the same, however, where Linux and Mac will use bash, Windows will use batch cmd.exe
, most of the commands used are similare, however:
Now that the differences are explained, let us attend to the core of this subject, compiling the program.
We will now configure our project.
The following output should appear colorised on your terminal (could not be reproduced here), this output should be simmilare to yours:
[ 0%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/Clock.cpp.o
[ 1%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/Err.cpp.o
[ 2%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/Sleep.cpp.o
[ 3%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/String.cpp.o
[ 3%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/Utils.cpp.o
[ 4%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/Vector2.cpp.o
[ 5%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/Vector3.cpp.o
[ 6%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/FileInputStream.cpp.o
[ 6%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/MemoryInputStream.cpp.o
[ 7%] Building CXX object _deps/sfml-build/src/SFML/System/CMakeFiles/sfml-system.dir/Unix/SleepImpl.cpp.o
[ 8%] Linking CXX static library ../../../lib/libsfml-system.a
[ 8%] Built target sfml-system
[ 9%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/AudioResource.cpp.o
[ 10%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/AudioDevice.cpp.o
[ 11%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/Listener.cpp.o
[ 11%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/Miniaudio.cpp.o
[ 12%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/MiniaudioUtils.cpp.o
[ 13%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/Music.cpp.o
[ 13%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/PlaybackDevice.cpp.o
[ 14%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/Sound.cpp.o
[ 15%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundBuffer.cpp.o
[ 16%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundBufferRecorder.cpp.o
[ 16%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/InputSoundFile.cpp.o
[ 17%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/OutputSoundFile.cpp.o
[ 18%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundRecorder.cpp.o
[ 19%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundSource.cpp.o
[ 19%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundStream.cpp.o
[ 20%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileFactory.cpp.o
[ 21%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileReaderFlac.cpp.o
[ 22%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileReaderMp3.cpp.o
[ 22%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileReaderOgg.cpp.o
[ 23%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileReaderWav.cpp.o
[ 24%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileWriterFlac.cpp.o
[ 24%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileWriterOgg.cpp.o
[ 25%] Building CXX object _deps/sfml-build/src/SFML/Audio/CMakeFiles/sfml-audio.dir/SoundFileWriterWav.cpp.o
[ 26%] Linking CXX static library ../../../lib/libsfml-audio.a
[ 26%] Built target sfml-audio
[ 26%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Clipboard.cpp.o
[ 27%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Context.cpp.o
[ 28%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Cursor.cpp.o
[ 29%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/GlContext.cpp.o
[ 29%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/GlResource.cpp.o
[ 30%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Joystick.cpp.o
[ 31%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/JoystickManager.cpp.o
[ 32%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Keyboard.cpp.o
[ 32%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Mouse.cpp.o
[ 33%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Touch.cpp.o
[ 34%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Sensor.cpp.o
[ 35%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/SensorManager.cpp.o
[ 35%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/VideoMode.cpp.o
[ 36%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Vulkan.cpp.o
[ 37%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Window.cpp.o
[ 37%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/WindowBase.cpp.o
[ 38%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/WindowImpl.cpp.o
[ 39%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/CursorImpl.cpp.o
[ 40%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/ClipboardImpl.cpp.o
[ 40%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/InputImpl.cpp.o
[ 41%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/KeyboardImpl.cpp.o
[ 42%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/KeySymToKeyMapping.cpp.o
[ 43%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/KeySymToUnicodeMapping.cpp.o
[ 43%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/SensorImpl.cpp.o
[ 44%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/Display.cpp.o
[ 45%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/VideoModeImpl.cpp.o
[ 46%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/VulkanImplX11.cpp.o
[ 46%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/WindowImplX11.cpp.o
[ 47%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/GlxContext.cpp.o
[ 48%] Building CXX object _deps/sfml-build/src/SFML/Window/CMakeFiles/sfml-window.dir/Unix/JoystickImpl.cpp.o
[ 49%] Linking CXX static library ../../../lib/libsfml-window.a
[ 49%] Built target sfml-window
[ 49%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/Ftp.cpp.o
[ 50%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/Http.cpp.o
[ 51%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/IpAddress.cpp.o
[ 51%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/Packet.cpp.o
[ 52%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/Socket.cpp.o
[ 53%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/SocketSelector.cpp.o
[ 54%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/TcpListener.cpp.o
[ 54%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/TcpSocket.cpp.o
[ 55%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/UdpSocket.cpp.o
[ 56%] Building CXX object _deps/sfml-build/src/SFML/Network/CMakeFiles/sfml-network.dir/Unix/SocketImpl.cpp.o
[ 57%] Linking CXX static library ../../../lib/libsfml-network.a
[ 57%] Built target sfml-network
[ 58%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/BlendMode.cpp.o
[ 58%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Font.cpp.o
[ 59%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Glsl.cpp.o
[ 60%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/GLCheck.cpp.o
[ 61%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/GLExtensions.cpp.o
[ 61%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Image.cpp.o
[ 62%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/RenderStates.cpp.o
[ 63%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/RenderTexture.cpp.o
[ 64%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/RenderTarget.cpp.o
[ 64%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/RenderWindow.cpp.o
[ 65%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Shader.cpp.o
[ 66%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/StencilMode.cpp.o
[ 67%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Texture.cpp.o
[ 67%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/TextureSaver.cpp.o
[ 68%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Transform.cpp.o
[ 69%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Transformable.cpp.o
[ 69%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/View.cpp.o
[ 70%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Shape.cpp.o
[ 71%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/CircleShape.cpp.o
[ 72%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/RectangleShape.cpp.o
[ 72%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/ConvexShape.cpp.o
[ 73%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Sprite.cpp.o
[ 74%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/Text.cpp.o
[ 75%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/VertexArray.cpp.o
[ 75%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/VertexBuffer.cpp.o
[ 76%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/RenderTextureImplFBO.cpp.o
[ 76%] Building CXX object _deps/sfml-build/src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/RenderTextureImplDefault.cpp.o
[ 77%] Linking CXX static library ../../../lib/libsfml-graphics.a
[ 77%] Built target sfml-graphics
[ 78%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/Main.cpp.o
[ 78%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/RealMain.cpp.o
[ 79%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/MainClass.cpp.o
[ 79%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/TOMLLoader.cpp.o
[ 80%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/CustomExceptions/No.cpp.o
[ 81%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/CustomExceptions/Invalid.cpp.o
[ 82%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/Network/NetworkManager.cpp.o
[ 82%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/Network/ProtocolHandler.cpp.o
[ 83%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Component.cpp.o
[ 84%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/EntityNode.cpp.o
[ 84%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/TextComponent.cpp.o
[ 85%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/MusicComponent.cpp.o
[ 86%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/ImageComponent.cpp.o
[ 86%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/ShapeComponent.cpp.o
[ 87%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/SpriteComponent.cpp.o
[ 88%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/ButtonComponent.cpp.o
[ 88%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/TextureComponent.cpp.o
[ 89%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/CollisionComponent.cpp.o
[ 90%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Components/AnimationComponent.cpp.o
[ 90%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Systems/Key.cpp.o
[ 91%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Systems/Font.cpp.o
[ 92%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Systems/Clock.cpp.o
[ 92%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Systems/Colour.cpp.o
[ 93%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Systems/Window.cpp.o
[ 94%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Systems/MouseInfo.cpp.o
[100%] Building CXX object gui/CMakeFiles/r-type_client.dir/src/GUI/ECS/Systems/EventManager.cpp.o
[100%] Linking CXX executable r-type_client
[100%] Built target r-type_client
We are now done with the compilation of the client binary. You can keep this terminal open an run the cd ..
command (assuming you are still located in the gui
folder) or reopen a fresh one in the base of the repository.
You can then follow the Running the client section.
To check if the client binary is working, you can, in a terminal located in the same folder as the binary, run the command ./r-type_client --help
The configuration file is a toml file that contains the sprites, music and fonts to load. Here is the default configuration:
# The font
[font]
# Default structure
# [font.<font_name>] # the name of the font (unique identifier)
# name = "<name of the font>" # set the name of the font (a human readable name)
# path = "<path to the font file>" # set the path to the file (supported format, ttf, otf [and other SFML Font supported formats])
# default_size = <size> # (0 -> 100) set the default size of the font to display, in pixels
# bold = false # (or true) set the font to bold
# italic = false # (or true) set the font to italic
# The font that will be used for title sections of the program
[font.title]
name = "Color Basic"
path = "assets/font/Color Basic/TTF Fonts/color_basic.ttf"
default_size = 50
bold = false
italic = false
# The font that will be used for the rest of the text to display
[font.body]
name = "Joystix Monospace"
path = "assets/font/Joystix/TTF Fonts/joystix_monospace.ttf"
default_size = 50
bold = false
italic = false
# The font that will be defaulted to when no other font is specified or available
[font.default]
name = "6809 Chargen"
path = "assets/font/6809 Chargen/TTF Fonts/6809_chargen.ttf"
default_size = 50
bold = false
italic = false
# The font that will be used for the buttons
[font.button]
name = "Betsy Flanagan"
path = "assets/font/Desktop-Betsy Flanagan-TTF/TTF Fonts/betsy_flanagan_2.ttf"
default_size = 50
bold = false
italic = false
# The music
[music]
# Default structure
# [music.<music_name>] # the name of the music (unique identifier)
# name = "<name of the music>" # set the name of the music (a human readable name)
# path = "<valid path to the audio file>" # set the path to the file (supported format, ogg, wav [and other SFML Music supported formats])
# loop = true # (or false) # play the music on repeat
# volume = <volume> # (0 -> 100) set the volume of the track to play.
[music.mainMenu]
name = "Main Menu"
path = "assets/audio/2019-12-11_-_Retro_Platforming_-_David_Fesliyan.ogg"
loop = true
volume = 100
[music.bossFight]
name = "Boss Fight"
path = "assets/audio/2021-08-30_-_Boss_Time_-_www.FesliyanStudios.com.ogg"
loop = true
volume = 100
[music.gameLoop]
name = "Game Loop"
path = "assets/audio/FASTER-2020-03-22_-_A_Bit_Of_Hope_-_David_Fesliyan.ogg"
loop = true
volume = 100
[music.shooting]
name = "Shooting"
path = "assets/audio/Laser-A1-www.fesliyanstudios.com.ogg"
loop = false
volume = 100
[music.damage]
name = "Damage"
path = "assets/audio/Undertale_Damage_Sound_Effect.ogg"
loop = false
volume = 100
[music.dead]
name = "Dead"
path = "assets/audio/Bomb-Explosion-Big-www.fesliyanstudios.com.ogg"
loop = false
volume = 100
[music.button]
name = "Button"
path = "assets/audio/Game-Menu-Selection-Z-www.fesliyanstudios.com.ogg"
loop = false
volume = 100
[music.gameOver]
name = "Game Over"
path = "assets/audio/game-over-arcade.ogg"
loop = false
volume = 100
[music.success]
name = "Success"
path = "assets/audio/success-fanfare-trumpets-6185.ogg"
loop = false
volume = 100
# The logo of the program
# Default structure
# [icon] # the name of the logo (unique identifier)
# name = "Logo Name" # the name of the logo
# path = "<path to the logo>" # set the path to the logo image
# width = <width> # (0 -> 1000) set the initial width of the logo (Default: 256)
# height = <height> # (0 -> 1000) set the initial height of the logo (Default: 256)
# x = <x> # (0 -> 1000) set the initial x position of the logo (Default: 0)
# y = <y> # (0 -> 1000) set the initial y position of the logo (Default: 0)
[icon]
name = "R-type"
path = "assets/icon/RtypeLogo.png"
width = 150
height = 150
x = 0
y = 0
# The background for the program
[backgrounds]
# Default structure
# [backgrounds.<background_name>] # the name of the background (unique identifier)
# name = "<name of the background>" # set the name of the background (a human readable name)
# path = "<path to the background>" # set the path to the background image
# x = <x> # (0 -> 2147483647) set the x position of the background (Default: 0)
# y = <y> # (0 -> 2147483647) set the y position of the background (Default: 0)
# allow_as_level_background = true # (or false) allow the background to be used as a level background (Default: true)
# The backgrounds to manage
[backgrounds.mainMenu]
name = "Main Menu"
path = "assets/background/black_hole.jpeg"
x = 0
y = 0
allow_as_level_background = true
[backgrounds.settings]
name = "Settings"
path = "assets/background/blue_star_space.jpeg"
x = 0
y = 0
allow_as_level_background = true
[backgrounds.gameOver]
name = "Game Over"
path = "assets/background/dark_even_sky.jpeg"
x = 0
y = 0
allow_as_level_background = true
[backgrounds.gameWon]
name = "Game Won"
path = "assets/background/purple_sky.jpeg"
x = 0
y = 0
allow_as_level_background = true
[backgrounds.connectionAddress]
name = "Connection Address"
path = "assets/background/purple_sky.jpeg"
x = 0
y = 0
allow_as_level_background = true
[backgrounds.connectionFailed]
name = "Connection Failed"
path = "assets/background/connection_space.jpeg"
x = 0
y = 0
allow_as_level_background = false
[backgrounds.paralax]
name = "Paralax"
path = "assets/background/purple_sky.jpeg"
x = 0
y = 0
allow_as_level_background = true
[backgrounds.space]
name = "Space"
path = "assets/background/dark_blue_stars.jpeg"
x = 0
y = 0
allow_as_level_background = true
# The spritesheets
[spritesheets]
# Default structure
# [spritesheet.<spritesheet_name>] # the name of the spritesheet to load (unique identifier)
# name = "<name of the sprite>" # set the name of the sprite (a human readable name)
# path = "<valid path to the image file>" # set the path to the file (supported format, gif, png [and other SFML Texture supported formats])
# sprite_width = <width> # (0 -> 1000) set the width of the sprite view field, in pixels
# sprite_height = <height> # (0-> 1000) set the height of the sprite view field, in pixels
# start_left = true # (or false) set the starting position of the sprite view field to start from the left (or not)
# start_top = true # (or false) set the starting position of the sprite view field to start from the top (or not)
# initial_frame = 0 # set the frame that will be used as the first one, here the number represents the index of the frame. (default value: 0)
# end_frame = -1 # (or the index of the frame) set the last frame to be taken from the spritesheet (-1 means all frames present), (default value: -1)
# frame_delay = 100 # (from 0 to 2147483647) delay between each frame in milliseconds (default value: 100)
# The spritesheets to manage
# [spritesheets.sprite1_ship]
# name = "r-typesheet1_ship"
# path = "assets/img/r-typesheet1.gif"
# sprite_width = 33
# sprite_height = 18
# start_left = true
# start_top = true
# initial_frame = 3 # ship facing right: 3 to 7, ship facing left: 8 to 12
# end_frame = 12
# frame_delay = 100 # delay between each frame in milliseconds
# #The second line of sprites can't be cut because they are not in a matrix like layout
# [spritesheets.sprite1_particles]
# name = "r-typesheet1_particles"
# path = "assets/img/r-typesheet1.gif"
# sprite_width = 32
# sprite_height = 19
# start_left = true
# start_top = true
# initial_frame = 48 # particles: 48 to 64
# end_frame = 64
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite1_small_explosions]
# name = "r-typesheet1_small_explosions"
# path = "assets/img/r-typesheet1.gif"
# sprite_width = 19
# sprite_height = 12
# start_left = true
# start_top = true
# initial_frame = 208 # from 208 to 210 fire left, from 210 to 213, fire rigth
# end_frame = 213 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# # the next line cannot be cut cleanly because they are not in a matrix-like agency
# # the next line cannot be cut cleanly because they are not in a matrix-like agency
# [spritesheets.sprite1_big_fire_line]
# name = "r-typesheet1_big_fire_line"
# path = "assets/img/r-typesheet1.gif"
# sprite_width = 66
# sprite_height = 17
# start_left = true
# start_top = true
# initial_frame = 74 # from 74 to 75, to the rigth, from 76 to 77 to the left
# end_frame = 77 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# # The next line cannot be cut cleanly because they are not in a matrix-like agency
# # The next line cannot be cut cleanly because they are not in a matrix-like agency
# # The next line cannot be cut cleanly because they are not in a matrix-like agency
# [spritesheets.sprite1_red_fireball]
# name = "r-typesheet1_red_fireball"
# path = "assets/img/r-typesheet1.gif"
# sprite_width = 16
# sprite_height = 12
# start_left = true
# start_top = false
# initial_frame = 244
# end_frame = 250
# frame_delay = 100 # delay between each frame in milliseconds
# # The next line cannot be cut cleanly because they are not in a matrix-like agency
# [spritesheets.sprite1_round_blue_explosions]
# name = "r-typesheet1_round_blue_explosions"
# path = "assets/img/r-typesheet1.gif"
# sprite_width = 33
# sprite_height = 31
# start_left = true
# start_top = false
# initial_frame = 0 # to the left: 0 to 8, to the right: 9 to 16
# end_frame = 16
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite1]
# name = "r-typesheet1"
# path = "assets/img/r-typesheet1.gif"
# sprite_width = 20
# sprite_height = 20
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite2] # might get split in the future, complex spritesheet containing multiple sprites of different sizes
# name = "r-typesheet2"
# path = "assets/img/r-typesheet2.gif"
# sprite_width = 20
# sprite_height = 20
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite3]
name = "r-typesheet3"
path = "assets/img/r-typesheet3.gif"
sprite_width = 18
sprite_height = 18
start_left = true
start_top = true
initial_frame = 0 # max: 11
end_frame = -1 #end of all the frames
frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite3b]
name = "r-typesheet3b"
path = "assets/img/r-typesheet3b.gif"
sprite_width = 10
sprite_height = 10
start_left = true
start_top = true
initial_frame = 0 # max: 11
end_frame = -1 #end of all the frames
frame_delay = 1 #00 # delay between each frame in milliseconds
[spritesheets.sprite3c]
name = "r-typesheet3c"
path = "assets/img/r-typesheet3c.gif"
sprite_width = 10
sprite_height = 10
start_left = true
start_top = true
initial_frame = 0 # max: 11
end_frame = 0 #end of all the frames
frame_delay = 1 #00 # delay between each frame in milliseconds
[spritesheets.sprite5]
name = "r-typesheet5"
path = "assets/img/r-typesheet5.gif"
sprite_width = 32
sprite_height = 36
start_left = true
start_top = true
initial_frame = 0 # left: 0 to 7, right: 8 to 15
end_frame = -1 #end of all the frames
frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite7]
# name = "r-typesheet7"
# path = "assets/img/r-typesheet7.gif"
# sprite_width = 33
# sprite_height = 34
# start_left = true
# start_top = true
# initial_frame = 0 # looking left, no jets: 0 to 2, left right, no jets: 3 to 5, looking left, jets: 6 to 8, looking right, jets: 9 to 11
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite8]
# name = "r-typesheet8"
# path = "assets/img/r-typesheet8.gif"
# sprite_width = 34
# sprite_height = 34
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# # looking forward:
# # - east: 0
# # - east (a bit tilted to the south) 1
# # - east (a bit tilted to the east) 2
# # - south-east: 3
# # - south (a bit tilted to the east) 4
# # - south: 5
# # - south (a bit tilted to the west) 6
# # - south-west: 7
# # - west: 8
# # - west (a bit tilted to the south) 9
# # - north-west: 10
# # - north (a bit tilted to the west) 11
# # - north: 12
# # - north (a bit tilted to the east) 13
# # - north-east: 14
# [spritesheets.sprite9] # spritesheet to uneven to parse in a matrix like manner
# name = "r-typesheet9"
# path = "assets/img/r-typesheet9.gif"
# sprite_width = 20
# sprite_height = 20
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite10]
# name = "r-typesheet10"
# path = "assets/img/r-typesheet10.gif"
# sprite_width = 33
# sprite_height = 30
# start_left = true
# start_top = true
# initial_frame = 0 # craft left: 0 to 5, craft right: 6 to 11, up: 14 to 16, standing left: 17, standing right: 18, up rigth: 19 to 21, missiles will not be cut properly, you would need to realine the spritesheet for that.
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite11]
name = "r-typesheet11"
path = "assets/img/r-typesheet11.gif"
sprite_width = 33
sprite_height = 33
start_left = true
start_top = true
initial_frame = 0 # left: 0 to 2, right: 3 to 5
end_frame = -1 #end of all the frames
frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite12]
# name = "r-typesheet12"
# path = "assets/img/r-typesheet12.gif"
# sprite_width = 17
# sprite_height = 18
# start_left = true
# start_top = true
# initial_frame = 0 # craft: up-left: 0 to 2, up-right: 3 to 5, down-left: 6 to 8, down-right: 9 to 11
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite13]
name = "r-typesheet13"
path = "assets/img/r-typesheet13.gif"
sprite_width = 33
sprite_height = 33
start_left = true
start_top = true
initial_frame = 16 #0 # brown turret: 0 to 14, blue turrets: 15 to 29, bolder: 34 to 35
end_frame = 29 #-1 #end of all the frames
frame_delay = 100000 # delay between each frame in milliseconds
# [spritesheets.sprite14]
# name = "r-typesheet14"
# path = "assets/img/r-typesheet14.gif"
# sprite_width = 50
# sprite_height = 50
# start_left = true
# start_top = true
# initial_frame = 0 # 0 to 9
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite16]
# name = "r-typesheet16"
# path = "assets/img/r-typesheet16.gif"
# sprite_width = 18
# sprite_height = 11
# start_left = true
# start_top = true
# initial_frame = 0 #calculate your own frames, this spritesheet need to be re-aligned to be properly cut.
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite17]
# name = "r-typesheet17"
# path = "assets/img/r-typesheet17.gif"
# sprite_width = 65
# sprite_height = 66
# start_left = true
# start_top = true
# initial_frame = 0 # upwards: 0 to 7 , downwards: 8 to 15
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite18]
# name = "r-typesheet18"
# path = "assets/img/r-typesheet18.gif"
# sprite_width = 33
# sprite_height = 33
# start_left = true
# start_top = true
# initial_frame = 0 # unhatched: 0 to 3, breaking: 7 to 4, entity: 8 to 11
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite19]
# name = "r-typesheet19"
# path = "assets/img/r-typesheet19.gif"
# sprite_width = 33
# sprite_height = 33
# start_left = true
# start_top = true
# initial_frame = 0 # max: 13
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite19_ship_horizontal]
# name = "r-typesheet19_ship_horizontal"
# path = "assets/img/r-typesheet19.gif"
# sprite_width = 29
# sprite_height = 29
# start_left = true
# start_top = true
# initial_frame = 20
# end_frame = 21
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite19_bullet]
# name = "r-typesheet19_bullet"
# path = "assets/img/r-typesheet19.gif"
# sprite_width = 10
# sprite_height = 8
# start_left = true
# start_top = false
# initial_frame = 11
# end_frame = 11
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite20] # badly cut due to the sprite not being in a matrix like manner
# name = "r-typesheet20"
# path = "assets/img/r-typesheet20.gif"
# sprite_width = 20
# sprite_height = 20
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite21] # badly cut due to sprites not being in a matrix like manner
# name = "r-typesheet21"
# path = "assets/img/r-typesheet21.gif"
# sprite_width = 20
# sprite_height = 20
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite22]
# name = "r-typesheet22"
# path = "assets/img/r-typesheet22.gif"
# sprite_width = 33
# sprite_height = 33
# start_left = true
# start_top = true
# initial_frame = 0 # max 15
# end_frame = 15
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite23]
# name = "r-typesheet23"
# path = "assets/img/r-typesheet23.gif"
# sprite_width = 33
# sprite_height = 33
# start_left = true
# start_top = true
# initial_frame = 0 # to the left, : 0 to 7, to the right 8 to 15
# end_frame = 15
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite24]
name = "r-typesheet24"
path = "assets/img/r-typesheet24.gif"
sprite_width = 65
sprite_height = 65
start_left = true
start_top = true
initial_frame = 0
end_frame = -1 #end of all the frames
frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite25]
# name = "r-typesheet25"
# path = "assets/img/r-typesheet25.gif"
# sprite_width = 33
# sprite_height = 33
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite26]
# name = "r-typesheet26"
# path = "assets/img/r-typesheet26.gif"
# sprite_width = 65
# sprite_height = 50
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = 5
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite27]
# name = "r-typesheet27"
# path = "assets/img/r-typesheet27.gif"
# sprite_width = 34
# sprite_height = 34
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = 1
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite28]
name = "r-typesheet28"
path = "assets/img/r-typesheet28.gif"
sprite_width = 130
sprite_height = 50
start_left = true
start_top = true
initial_frame = 0
end_frame = 0
frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite29]
name = "r-typesheet29"
path = "assets/img/r-typesheet29.gif"
sprite_width = 33
sprite_height = 33
start_left = true
start_top = true
initial_frame = 0
end_frame = -1 #end of all the frames
frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite30] # Spritesheet not aligned, sprites will have missing pieces
# name = "r-typesheet30"
# path = "assets/img/r-typesheet30.gif"
# sprite_width = 172
# sprite_height = 209
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite30a]
name = "r-typesheet30a"
path = "assets/img/r-typesheet30a.gif"
sprite_width = 34
sprite_height = 34
start_left = true
start_top = true
initial_frame = 0
end_frame = -1 #end of all the frames
frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite30b]
name = "r-typesheet30b"
path = "assets/img/r-typesheet30b.gif"
sprite_width = 10
sprite_height = 10
start_left = true
start_top = true
initial_frame = 0
end_frame = -1 #end of all the frames
frame_delay = 1 #00 # delay between each frame in milliseconds
[spritesheets.sprite30c]
name = "r-typesheet30c"
path = "assets/img/r-typesheet30c.gif"
sprite_width = 10
sprite_height = 10
start_left = true
start_top = true
initial_frame = 0
end_frame = 0 #end of all the frames
frame_delay = 1 #00 # delay between each frame in milliseconds
# [spritesheets.sprite31_vertical] # Horizontal sprites will be cut in 2 due to them not being aligned in a matrix like manner
# name = "r-typesheet31_vertical"
# path = "assets/img/r-typesheet31.gif"
# sprite_width = 34
# sprite_height = 34
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite31_red_stone]
# name = "r-typesheet31_red_stone"
# path = "assets/img/r-typesheet31.gif"
# sprite_width = 11
# sprite_height = 10
# start_left = true
# start_top = false
# initial_frame = 12
# end_frame = 15
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite32]
# name = "r-typesheet32"
# path = "assets/img/r-typesheet32.gif"
# sprite_width = 260
# sprite_height = 144
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite33]
# name = "r-typesheet33"
# path = "assets/img/r-typesheet33.gif"
# sprite_width = 260
# sprite_height = 142
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite34]
# name = "r-typesheet34"
# path = "assets/img/r-typesheet34.gif"
# sprite_width = 260
# sprite_height = 144
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite35]
name = "r-typesheet35"
path = "assets/img/r-typesheet35.gif"
sprite_width = 264
sprite_height = 143
start_left = true
start_top = true
initial_frame = 0
end_frame = -1 #end of all the frames
frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite36]
# name = "r-typesheet36"
# path = "assets/img/r-typesheet36.gif"
# sprite_width = 264
# sprite_height = 143
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_mothership_intact]
# name = "r-typesheet37_mothership_intact"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 594
# sprite_height = 191
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = 0
# frame_delay = 100 # delay between each frame in milliseconds
# #Second section of the spritesheet could not be parsed due to the sprites not being aligned in a matrix like manner
# [spritesheets.sprite37_turret_firering]
# name = "r-typesheet37_turret_firering"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 33
# sprite_height = 32
# start_left = true
# start_top = true
# initial_frame = 142 # from 142 to 149 and 159 to 166
# end_frame = 166
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_gun]
# name = "r-typesheet37_emp_gun"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 35
# sprite_height = 32
# start_left = true
# start_top = true
# initial_frame = 179
# end_frame = 179
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_laser]
# name = "r-typesheet37_emp_laser"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 37
# sprite_height = 70
# start_left = true
# start_top = true
# initial_frame = 87
# end_frame = 91
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_gun_orientation]
# name = "r-typesheet37_emp_gun_orientation"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 37
# sprite_height = 32
# start_left = true
# start_top = true
# initial_frame = 215
# end_frame = 219
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_orientation] # Badly cut due to the sprites not being aligned in a matrix like manner
# name = "r-typesheet37_emp_orientation"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 73
# sprite_height = 64
# start_left = true
# start_top = true
# initial_frame = 57
# end_frame = 64
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_broken_emp_gun]
# name = "r-typesheet37_broken_emp_gun"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 28
# sprite_height = 26
# start_left = true
# start_top = true
# initial_frame = 431
# end_frame = 431
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_gun_explosion]
# name = "r-typesheet37_emp_gun_explosion"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 31
# sprite_height = 29
# start_left = true
# start_top = true
# initial_frame = 371
# end_frame = 371
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_gun_explosion2]
# name = "r-typesheet37_emp_gun_explosion2"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 31
# sprite_height = 29
# start_left = true
# start_top = true
# initial_frame = 390
# end_frame = 390
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_gun_explosion3]
# name = "r-typesheet37_emp_gun_explosion3]"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 31
# sprite_height = 29
# start_left = true
# start_top = true
# initial_frame = 409
# end_frame = 409
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_emp_gun_explosion4]
# name = "r-typesheet37_emp_gun_explosion4]"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 31
# sprite_height = 29
# start_left = true
# start_top = true
# initial_frame = 428
# end_frame = 428
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_big_gun]
# name = "r-typesheet37_big_gun"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 92
# sprite_height = 29
# start_left = false
# start_top = true
# initial_frame = 145
# end_frame = 145
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_initial_flame]
# name = "r-typesheet37_initial_flame"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 65
# sprite_height = 62
# start_left = true
# start_top = true
# initial_frame = 106
# end_frame = 106
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_mid_flame]
# name = "r-typesheet37_mid_flame"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 127
# sprite_height = 29
# start_left = true
# start_top = true
# initial_frame = 97
# end_frame = 98
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_end_flame]
# name = "r-typesheet37_end_flame"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 31
# sprite_height = 29
# start_left = true
# start_top = true
# initial_frame = 458
# end_frame = 461
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_small_projectile]
# name = "r-typesheet37_small_projectile"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 18
# sprite_height = 32
# start_left = false
# start_top = true
# initial_frame = 808
# end_frame = 811
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_top_turret]
# name = "r-typesheet37_top_turret"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 35
# sprite_height = 35
# start_left = true
# start_top = false
# initial_frame = 328
# end_frame = 337
# frame_delay = 100 # delay between each frame in milliseconds
# # small turrets skipped due to them not being aligned on an round pixel index they could thus not be properly cut
# [spritesheets.sprite37_turret_flame]
# name = "r-typesheet37_turret_flame"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 35
# sprite_height = 36
# start_left = true
# start_top = true
# initial_frame = 447 # row1: 447 to 455, row 2: 464 to 472, row3: 481 to 489, row4: 498 to 506
# end_frame = 506
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_small_line_craft]
# name = "r-typesheet37_small_line_craft"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 74
# sprite_height = 36
# start_left = true
# start_top = true
# initial_frame = 244 #row1: 244 to 245, row2: 252 to 253, row3: 260 to 261, row4: 268 to 269
# end_frame = 269
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_blue_projectiles]
# name = "r-typesheet37_blue_projectiles"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 14
# sprite_height = 12
# start_left = true
# start_top = false
# initial_frame = 1028
# end_frame = 1031
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_ship_broken]
# name = "r-typesheet37_ship_broken"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 591
# sprite_height = 178
# start_left = true
# start_top = false
# initial_frame = 0
# end_frame = 0
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite37_nuclear_cloud] # Sprites will be a bit cut off due to bad alignement on the spritesheet
# name = "r-typesheet37_nuclear_cloud"
# path = "assets/img/r-typesheet37.gif"
# sprite_width = 23
# sprite_height = 39
# start_left = true
# start_top = false
# initial_frame = 6 # mushroom downwards: 6 to 19, mushroom upwards: 32 to 45
# end_frame = 45
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite38_parents]
# name = "r-typesheet38_parents"
# path = "assets/img/r-typesheet38.gif"
# sprite_width = 186
# sprite_height = 152
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = 1
# frame_delay = 100 # delay between each frame in milliseconds
# # The intermediate ships of the spritesheet could not be cut because they are not aligned on a square/rectangular grid in a matrix like manner
# [spritesheets.sprite38_projectile]
# name = "r-typesheet38_projectile"
# path = "assets/img/r-typesheet38.gif"
# sprite_width = 34
# sprite_height = 30
# start_left = true
# start_top = false
# initial_frame = 3
# end_frame = 7
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite39] # The parent (split in 2, frame 2 and 3)
# name = "r-typesheet39"
# path = "assets/img/r-typesheet39.gif"
# sprite_width = 33
# sprite_height = 68
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite39_underlings] # There are only 4 frames of interest here
# name = "r-typesheet39_underlings"
# path = "assets/img/r-typesheet39.gif"
# sprite_width = 33
# sprite_height = 35
# start_left = true
# start_top = false
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite40_boss] #This is the first line of the spritesheet
# name = "r-typesheet40_boss"
# path = "assets/img/r-typesheet40.gif"
# sprite_width = 66
# sprite_height = 59
# start_left = true
# start_top = true
# initial_frame = 0 # the range is 0 to 7
# end_frame = 7
# frame_delay = 100 # delay between each frame in milliseconds
# # The underlings could not be processed because they were not in a matrix like array
# [spritesheets.sprite40_platform]
# name = "r-typesheet40_platform"
# path = "assets/img/r-typesheet40.gif"
# sprite_width = 66
# sprite_height = 32
# start_left = true
# start_top = true
# initial_frame = 34 # the range is 34 to 37
# end_frame = 37
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite40_uob_entity] # uob (unidentified object)
# name = "r-typesheet40_uob_entity"
# path = "assets/img/r-typesheet40.gif"
# sprite_width = 33
# sprite_height = 32
# start_left = true
# start_top = true
# initial_frame = 85 # the range is 85 to 88 and 101 to 104
# end_frame = 104
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite40_terraform]
# name = "r-typesheet40_terraform"
# path = "assets/img/r-typesheet40.gif"
# sprite_width = 48
# sprite_height = 46
# start_left = false
# start_top = false
# initial_frame = 5 # there is only one block
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite41] #spritesheet to uneven to parse in a matrix like manner
# name = "r-typesheet41"
# path = "assets/img/r-typesheet41.gif"
# sprite_width = 20
# sprite_height = 20
# start_left = true
# start_top = true
# initial_frame = 0
# end_frame = -1 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite42] # spaceships
name = "r-typesheet42"
path = "assets/img/r-typesheet42.gif"
sprite_width = 33
sprite_height = 17
start_left = true
start_top = true
initial_frame = 0 # cyan ship: 0 to 4, purple 5 to 9, green: 10 to 14, red: 15 to 19, dark blue: 20 to 24
end_frame = 2
# end_frame = -1 #end of all the frames
frame_delay = 100000 # delay between each frame in milliseconds
# [spritesheets.sprite43_fireball]
# name = "r-typesheet43_fireball"
# path = "assets/img/r-typesheet43.gif"
# sprite_width = 17
# sprite_height = 13
# start_left = true
# start_top = true
# initial_frame = 8
# end_frame = 15 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite43_small_explosion]
# name = "r-typesheet43_small_explosion"
# path = "assets/img/r-typesheet43.gif"
# sprite_width = 18
# sprite_height = 16
# start_left = true
# start_top = true
# initial_frame = 28
# end_frame = 37
# frame_delay = 100 # delay between each frame in milliseconds
[spritesheets.sprite43_laser]
name = "r-typesheet43_laser"
path = "assets/img/r-typesheet43.gif"
sprite_width = 50
sprite_height = 5
start_left = true
start_top = true
initial_frame = 63
end_frame = 69
frame_delay = 100 # delay between each frame in milliseconds
# # The last line of sprites from the spritesheet could not be rendered due to them not being aligned in a matrix like manner
# [spritesheets.sprite44_small_explosion] # as the explosion is not correctly aligned, the sprites will be cut of in a more or less visible manner
# name = "r-typesheet44_small_explosion"
# path = "assets/img/r-typesheet44.gif"
# sprite_width = 32
# sprite_height = 32
# start_left = true
# start_top = true
# initial_frame = 4
# end_frame = 15
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite44_medium_explosion] # due to frame alignement, the white and black circles will be cropped as well as some small sections of the medium center sprites
# name = "r-typesheet44_medium_explosion"
# path = "assets/img/r-typesheet44.gif"
# sprite_width = 65
# sprite_height = 44
# start_left = true
# start_top = true
# initial_frame = 10
# end_frame = 20
# frame_delay = 100 # delay between each frame in milliseconds
# [spritesheets.sprite44_big_explosion] # due to sprite size, the sprites will be a bit cut off on the top and bottom
# name = "r-typesheet44_big_explosion"
# path = "assets/img/r-typesheet44.gif"
# sprite_width = 65
# sprite_height = 53
# start_left = true
# start_top = false
# initial_frame = 0
# end_frame = 10 #end of all the frames
# frame_delay = 100 # delay between each frame in milliseconds
This section provides solutions for common issues you might encounter while compiling, running, or configuring the R-Type client.