├── DATA
├── Levels
│ ├── 1
│ │ ├── LevelData
│ │ │ ├── SkyboxConfig.ini
│ │ │ ├── Config.ini
│ │ │ ├── StaticLightsData.conf
│ │ │ ├── TexturesData.conf
│ │ │ ├── _README - Description of ConfigFiles.txt
│ │ │ ├── MapDoorData.conf
│ │ │ ├── MapWallData.conf
│ │ │ ├── MapCeilingData.conf
│ │ │ └── MapFloorData.conf
│ │ ├── PlayerData
│ │ │ └── Config.ini
│ │ └── EntityData
│ │ │ ├── 0.ini
│ │ │ ├── 1.ini
│ │ │ ├── 2.ini
│ │ │ ├── 3.ini
│ │ │ └── 4.ini
│ ├── 2
│ │ ├── LevelData
│ │ │ ├── StaticLightsData.conf
│ │ │ ├── TexturesData.conf
│ │ │ ├── SkyboxConfig.ini
│ │ │ ├── Config.ini
│ │ │ ├── _README - Description of ConfigFiles.txt
│ │ │ ├── MapDoorData.conf
│ │ │ ├── MapCeilingData.conf
│ │ │ ├── MapFloorData.conf
│ │ │ └── MapWallData.conf
│ │ ├── PlayerData
│ │ │ └── Config.ini
│ │ └── EntityData
│ │ │ ├── 0.ini
│ │ │ ├── 1.ini
│ │ │ ├── 2.ini
│ │ │ ├── 4.ini
│ │ │ ├── 5.ini
│ │ │ ├── 6.ini
│ │ │ ├── 7.ini
│ │ │ └── 3.ini
│ └── 3
│ │ ├── EntityData
│ │ └── Dummy.txt
│ │ ├── LevelData
│ │ ├── StaticLightsData.conf
│ │ ├── TexturesData.conf
│ │ ├── SkyboxConfig.ini
│ │ ├── Config.ini
│ │ ├── MapDoorData.conf
│ │ ├── MapFloorData.conf
│ │ ├── MapWallData.conf
│ │ ├── MapCeilingData.conf
│ │ └── _README - Description of ConfigFiles.txt
│ │ └── PlayerData
│ │ └── Config.ini
├── Assets_Weapons
│ ├── Weapon_1_TexturesData.conf
│ ├── Weapon_0_TexturesData.conf
│ ├── Weapon_0_MuzzleFlashTexturesData.conf
│ ├── Weapon_1_MuzzleFlashTexturesData.conf
│ ├── Weapon_1_Data.ini
│ ├── Weapon_0_Data.ini
│ └── README - Description of ConfigFiles.txt
├── GameConfig
│ ├── MenuDefinition.txt
│ ├── WindowConfig.ini
│ ├── EffectsConfig.ini
│ ├── GameConfig.ini
│ ├── RaycasterConfig.ini
│ ├── MenuConfig.ini
│ ├── HUDHealthBarConfig.ini
│ ├── TransitionsConfig.ini
│ ├── HUDMinimapConfig.ini
│ ├── HUDWeaponDisplayConfig.ini
│ ├── IntroHeader.txt
│ └── InputConfig.ini
├── Assets_Entities
│ ├── AmmoBox
│ │ └── AssetData.ini
│ ├── Demon
│ │ └── AssetData.ini
│ ├── Turret
│ │ └── AssetData.ini
│ └── Soldier
│ │ └── AssetData.ini
└── Assets_Doors
│ └── Door_1_Data.ini
├── .gitattributes
├── Release.zip
├── GFX
├── HUD
│ ├── Mouse.png
│ ├── Crosshair.png
│ ├── WeaponHUD.png
│ └── XBoxController.png
├── SkyBox
│ └── Sky.png
├── Effects
│ └── Bloodstains.png
├── Entities
│ └── 64
│ │ ├── Demon
│ │ ├── 0
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── 1
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── 2
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── 3
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── 4
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── 5
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── 6
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── 7
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ └── 3.png
│ │ ├── Kill
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ └── 4.png
│ │ └── Attack
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ └── 2.png
│ │ ├── Turret
│ │ ├── 0
│ │ │ └── 0.png
│ │ ├── 1
│ │ │ └── 0.png
│ │ ├── 2
│ │ │ └── 0.png
│ │ ├── 3
│ │ │ └── 0.png
│ │ ├── 4
│ │ │ └── 0.png
│ │ ├── 5
│ │ │ └── 0.png
│ │ ├── 6
│ │ │ └── 0.png
│ │ ├── 7
│ │ │ └── 0.png
│ │ └── Kill
│ │ │ └── 0.png
│ │ ├── AmmoBox
│ │ ├── 0
│ │ │ └── 0.png
│ │ ├── 1
│ │ │ └── 0.png
│ │ ├── 2
│ │ │ └── 0.png
│ │ ├── 3
│ │ │ └── 0.png
│ │ ├── 4
│ │ │ └── 0.png
│ │ ├── 5
│ │ │ └── 0.png
│ │ ├── 6
│ │ │ └── 0.png
│ │ └── 7
│ │ │ └── 0.png
│ │ └── Soldier
│ │ ├── 0
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── 1
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── 2
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── 3
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── 4
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── 5
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── 6
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── 7
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ └── 3.png
│ │ ├── Kill
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ └── 5.png
│ │ └── Attack
│ │ ├── 0.png
│ │ └── 1.png
├── LevelTextures
│ └── 64
│ │ ├── Door1.png
│ │ ├── Vent1.png
│ │ ├── Vent2.png
│ │ ├── Wall1.png
│ │ ├── Wall2.png
│ │ ├── Wall3.png
│ │ ├── Wall4.png
│ │ ├── Crate1.png
│ │ ├── Floor1.png
│ │ ├── Floor2.png
│ │ ├── Pipes1.png
│ │ ├── Pipes2.png
│ │ ├── Ceiling1.png
│ │ ├── Console1.png
│ │ ├── Console2.png
│ │ ├── LavaWall1.png
│ │ └── StoneFloor1.png
└── PlayerAssets
│ └── Weapons
│ ├── HBRa3
│ ├── HBRa3.png
│ └── MuzzleFlash.png
│ └── ARX160
│ ├── ARX160.png
│ └── MuzzleFlash.png
├── Tools
└── 7Zip
│ ├── 7za.dll
│ ├── 7za.exe
│ ├── 7zxa.dll
│ └── readme.txt
├── Documentation
├── Assets
│ ├── Fonts.txt
│ ├── Soldier Info.txt
│ ├── Demon Info.txt
│ ├── Demon.gif
│ ├── Soldier.png
│ ├── AmmoBox.blend
│ ├── Turret.blend
│ ├── Turret Info.txt
│ └── AmmoBox Info.txt
├── NARC.png
├── NARC1.png
├── Engine
│ ├── ImageFormat.txt
│ ├── Entity Types and Movement.txt
│ └── AudioFormat.txt
├── Used Raycasting Tutorials
│ ├── Lodev.url
│ └── Permadi Raycasting Tutorial.url
└── Development
│ └── Used Software.txt
├── SFX
├── PlayerSounds
│ ├── Hurt.mp3
│ ├── DeathScream.mp3
│ └── PlayerFootSteps.mp3
├── BackgroundMusic
│ └── AtmoLoop.mp3
├── DoorSounds
│ └── Sliding_Door.mp3
├── WeaponSounds
│ ├── ARX160
│ │ ├── DryFire.mp3
│ │ ├── Reload.mp3
│ │ └── SingleShot.mp3
│ └── HBRa3
│ │ ├── DryFire.mp3
│ │ ├── Reload.mp3
│ │ └── SingleShot.mp3
└── EntitySounds
│ ├── Demon
│ ├── Demon_Grunt.mp3
│ └── Demon_DeathScream.mp3
│ ├── Turret
│ ├── Turret_Shot.mp3
│ └── Turret_Explosion.mp3
│ ├── Soldier
│ ├── Soldier_Shot.mp3
│ └── Soldier_DeathScream.mp3
│ └── AmmoBox
│ └── AmmoBox_Pickup.mp3
├── Sources
├── lwmf
│ ├── lwmf_lines.hpp
│ ├── lwmf_general.hpp
│ ├── lwmf_polygons.hpp
│ ├── lwmf_simd.hpp
│ ├── lwmf_fpscounter.hpp
│ ├── lwmf.hpp
│ ├── lwmf_pixel.hpp
│ ├── lwmf_fill.hpp
│ ├── lwmf_bmp.hpp
│ ├── lwmf_color.hpp
│ ├── lwmf_multithreading.hpp
│ ├── lwmf_rectangles.hpp
│ ├── lwmf_rawinput.hpp
│ ├── lwmf_circles.hpp
│ ├── lwmf_math.hpp
│ ├── lwmf_perlinnoise.hpp
│ ├── lwmf_ellipses.hpp
│ └── lwmf_inifile.hpp
├── Game_Folder.hpp
├── GFX_ImageHandling.hpp
├── GFX_LightingClass.hpp
├── Tools_Cleanup.hpp
├── Game_PreGame.hpp
├── GFX_Window.hpp
├── Game_GlobalDefinitions.hpp
├── Game_Effects.hpp
├── HID_Mouse.hpp
├── Game_Config.hpp
├── Game_HealthBarClass.hpp
├── Tools_Console.hpp
├── Game_SkyboxHandling.hpp
├── Game_WeaponDisplayClass.hpp
├── Game_PlayerClass.hpp
├── Tools_ErrorHandling.hpp
├── Game_DataStructures.hpp
├── HID_Keyboard.hpp
└── Game_Transitions.hpp
├── _CountLOC.ps1
├── _PackRelease.cmd
├── Fonts
└── Ubuntu_Mono
│ ├── UbuntuMono-Bold.ttf
│ └── UFL.txt
├── _PackReleaseFileList.txt
├── NARC.vcxproj.user
├── _PrepareX64Folders.cmd
├── LICENSE
├── NARC.sln
└── NARC.vcxproj.filters
/DATA/Levels/3/EntityData/Dummy.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.* linguist-language=C++
2 |
--------------------------------------------------------------------------------
/DATA/Levels/2/LevelData/StaticLightsData.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/StaticLightsData.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/TexturesData.conf:
--------------------------------------------------------------------------------
1 | Wall1.png
--------------------------------------------------------------------------------
/Release.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Release.zip
--------------------------------------------------------------------------------
/DATA/Assets_Weapons/Weapon_1_TexturesData.conf:
--------------------------------------------------------------------------------
1 | ./GFX/PlayerAssets/Weapons/HBRa3/HBRa3.png
--------------------------------------------------------------------------------
/GFX/HUD/Mouse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/HUD/Mouse.png
--------------------------------------------------------------------------------
/DATA/Assets_Weapons/Weapon_0_TexturesData.conf:
--------------------------------------------------------------------------------
1 | ./GFX/PlayerAssets/Weapons/ARX160/ARX160.png
--------------------------------------------------------------------------------
/DATA/Levels/2/LevelData/TexturesData.conf:
--------------------------------------------------------------------------------
1 | LavaWall1.png
2 | StoneFloor1.png
3 | Crate1.png
--------------------------------------------------------------------------------
/GFX/SkyBox/Sky.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/SkyBox/Sky.png
--------------------------------------------------------------------------------
/Tools/7Zip/7za.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Tools/7Zip/7za.dll
--------------------------------------------------------------------------------
/Tools/7Zip/7za.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Tools/7Zip/7za.exe
--------------------------------------------------------------------------------
/Tools/7Zip/7zxa.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Tools/7Zip/7zxa.dll
--------------------------------------------------------------------------------
/Documentation/Assets/Fonts.txt:
--------------------------------------------------------------------------------
1 | Used fonts are taken from
2 |
3 | https://fonts.google.com/
4 |
--------------------------------------------------------------------------------
/Documentation/Assets/Soldier Info.txt:
--------------------------------------------------------------------------------
1 | The soldier was created by ID software for the original DooM.
--------------------------------------------------------------------------------
/Documentation/NARC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Documentation/NARC.png
--------------------------------------------------------------------------------
/GFX/HUD/Crosshair.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/HUD/Crosshair.png
--------------------------------------------------------------------------------
/GFX/HUD/WeaponHUD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/HUD/WeaponHUD.png
--------------------------------------------------------------------------------
/Documentation/NARC1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Documentation/NARC1.png
--------------------------------------------------------------------------------
/SFX/PlayerSounds/Hurt.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/PlayerSounds/Hurt.mp3
--------------------------------------------------------------------------------
/DATA/Assets_Weapons/Weapon_0_MuzzleFlashTexturesData.conf:
--------------------------------------------------------------------------------
1 | ./GFX/PlayerAssets/Weapons/ARX160/MuzzleFlash.png
--------------------------------------------------------------------------------
/DATA/Assets_Weapons/Weapon_1_MuzzleFlashTexturesData.conf:
--------------------------------------------------------------------------------
1 | ./GFX/PlayerAssets/Weapons/HBRa3/MuzzleFlash.png
--------------------------------------------------------------------------------
/GFX/Effects/Bloodstains.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Effects/Bloodstains.png
--------------------------------------------------------------------------------
/GFX/HUD/XBoxController.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/HUD/XBoxController.png
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf_lines.hpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Sources/lwmf/lwmf_lines.hpp
--------------------------------------------------------------------------------
/_CountLOC.ps1:
--------------------------------------------------------------------------------
1 | (gci -include *.cpp,*.hpp,*.vertexshader,*.fragmentshader -recurse | select-string .).Count
--------------------------------------------------------------------------------
/_PackRelease.cmd:
--------------------------------------------------------------------------------
1 | del Release.zip
2 | Tools\7Zip\7za a -tzip Release.zip @_PackReleaseFileList.txt
3 | pause
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/SkyboxConfig.ini:
--------------------------------------------------------------------------------
1 | [SKYBOX]
2 | SkyBoxEnabled=true
3 | SkyBoxImageName=./GFX/SkyBox/Sky.png
--------------------------------------------------------------------------------
/DATA/Levels/2/LevelData/SkyboxConfig.ini:
--------------------------------------------------------------------------------
1 | [SKYBOX]
2 | SkyBoxEnabled=true
3 | SkyBoxImageName=./GFX/SkyBox/Sky.png
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/SkyboxConfig.ini:
--------------------------------------------------------------------------------
1 | [SKYBOX]
2 | SkyBoxEnabled=false
3 | SkyBoxImageName=./GFX/SkyBox/Sky.png
--------------------------------------------------------------------------------
/Documentation/Assets/Demon Info.txt:
--------------------------------------------------------------------------------
1 | The demon was created by Adrian Carmack of ID software for the original DooM.
--------------------------------------------------------------------------------
/Documentation/Assets/Demon.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Documentation/Assets/Demon.gif
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/0/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/0/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/0/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/0/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/0/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/0/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/0/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/0/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/1/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/1/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/1/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/1/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/1/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/1/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/1/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/1/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/2/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/2/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/2/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/2/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/2/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/2/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/2/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/2/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/3/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/3/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/3/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/3/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/3/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/3/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/3/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/3/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/4/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/4/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/4/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/4/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/4/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/4/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/4/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/4/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/5/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/5/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/5/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/5/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/5/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/5/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/5/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/5/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/6/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/6/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/6/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/6/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/6/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/6/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/6/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/6/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/7/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/7/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/7/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/7/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/7/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/7/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/7/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/7/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/0/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/0/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/1/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/1/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/2/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/2/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/3/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/3/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/4/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/4/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/5/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/5/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/6/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/6/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/7/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/7/0.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Door1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Door1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Vent1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Vent1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Vent2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Vent2.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Wall1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Wall1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Wall2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Wall2.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Wall3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Wall3.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Wall4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Wall4.png
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf_general.hpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Sources/lwmf/lwmf_general.hpp
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf_polygons.hpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Sources/lwmf/lwmf_polygons.hpp
--------------------------------------------------------------------------------
/Documentation/Assets/Soldier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Documentation/Assets/Soldier.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/0/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/0/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/1/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/1/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/2/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/2/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/3/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/3/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/4/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/4/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/5/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/5/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/6/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/6/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/AmmoBox/7/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/AmmoBox/7/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Kill/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Kill/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Kill/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Kill/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Kill/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Kill/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Kill/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Kill/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Kill/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Kill/4.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/0/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/0/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/0/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/0/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/0/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/0/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/0/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/0/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/1/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/1/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/1/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/1/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/1/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/1/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/1/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/1/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/2/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/2/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/2/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/2/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/2/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/2/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/2/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/2/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/3/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/3/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/3/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/3/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/3/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/3/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/3/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/3/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/4/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/4/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/4/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/4/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/4/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/4/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/4/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/4/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/5/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/5/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/5/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/5/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/5/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/5/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/5/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/5/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/6/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/6/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/6/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/6/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/6/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/6/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/6/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/6/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/7/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/7/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/7/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/7/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/7/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/7/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/7/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/7/3.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Crate1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Crate1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Floor1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Floor1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Floor2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Floor2.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Pipes1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Pipes1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Pipes2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Pipes2.png
--------------------------------------------------------------------------------
/SFX/BackgroundMusic/AtmoLoop.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/BackgroundMusic/AtmoLoop.mp3
--------------------------------------------------------------------------------
/SFX/DoorSounds/Sliding_Door.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/DoorSounds/Sliding_Door.mp3
--------------------------------------------------------------------------------
/SFX/PlayerSounds/DeathScream.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/PlayerSounds/DeathScream.mp3
--------------------------------------------------------------------------------
/Documentation/Assets/AmmoBox.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Documentation/Assets/AmmoBox.blend
--------------------------------------------------------------------------------
/Documentation/Assets/Turret.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Documentation/Assets/Turret.blend
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Attack/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Attack/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Attack/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Attack/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Demon/Attack/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Demon/Attack/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Kill/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Kill/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Kill/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Kill/1.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Kill/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Kill/2.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Kill/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Kill/3.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Kill/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Kill/4.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Kill/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Kill/5.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Turret/Kill/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Turret/Kill/0.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Ceiling1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Ceiling1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Console1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Console1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/Console2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/Console2.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/LavaWall1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/LavaWall1.png
--------------------------------------------------------------------------------
/SFX/WeaponSounds/ARX160/DryFire.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/WeaponSounds/ARX160/DryFire.mp3
--------------------------------------------------------------------------------
/SFX/WeaponSounds/ARX160/Reload.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/WeaponSounds/ARX160/Reload.mp3
--------------------------------------------------------------------------------
/SFX/WeaponSounds/HBRa3/DryFire.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/WeaponSounds/HBRa3/DryFire.mp3
--------------------------------------------------------------------------------
/SFX/WeaponSounds/HBRa3/Reload.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/WeaponSounds/HBRa3/Reload.mp3
--------------------------------------------------------------------------------
/DATA/GameConfig/MenuDefinition.txt:
--------------------------------------------------------------------------------
1 | 0,Options,0,0
2 | 1,Exit Game,0,0
3 | 2,Input,0,1
4 | 3,Toogle Mouse / GameController,2,2
--------------------------------------------------------------------------------
/Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Attack/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Attack/0.png
--------------------------------------------------------------------------------
/GFX/Entities/64/Soldier/Attack/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/Entities/64/Soldier/Attack/1.png
--------------------------------------------------------------------------------
/GFX/LevelTextures/64/StoneFloor1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/LevelTextures/64/StoneFloor1.png
--------------------------------------------------------------------------------
/SFX/PlayerSounds/PlayerFootSteps.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/PlayerSounds/PlayerFootSteps.mp3
--------------------------------------------------------------------------------
/SFX/WeaponSounds/HBRa3/SingleShot.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/WeaponSounds/HBRa3/SingleShot.mp3
--------------------------------------------------------------------------------
/GFX/PlayerAssets/Weapons/HBRa3/HBRa3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/PlayerAssets/Weapons/HBRa3/HBRa3.png
--------------------------------------------------------------------------------
/SFX/EntitySounds/Demon/Demon_Grunt.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/EntitySounds/Demon/Demon_Grunt.mp3
--------------------------------------------------------------------------------
/SFX/EntitySounds/Turret/Turret_Shot.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/EntitySounds/Turret/Turret_Shot.mp3
--------------------------------------------------------------------------------
/SFX/WeaponSounds/ARX160/SingleShot.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/WeaponSounds/ARX160/SingleShot.mp3
--------------------------------------------------------------------------------
/DATA/GameConfig/WindowConfig.ini:
--------------------------------------------------------------------------------
1 | [WINDOW]
2 | WindowName=NARC_RaycastingGameEngine
3 | ViewportWidth=640
4 | ViewportHeight=480
5 |
--------------------------------------------------------------------------------
/GFX/PlayerAssets/Weapons/ARX160/ARX160.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/PlayerAssets/Weapons/ARX160/ARX160.png
--------------------------------------------------------------------------------
/SFX/EntitySounds/Soldier/Soldier_Shot.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/EntitySounds/Soldier/Soldier_Shot.mp3
--------------------------------------------------------------------------------
/_PackReleaseFileList.txt:
--------------------------------------------------------------------------------
1 | x64\Release\DATA\*
2 | x64\Release\Fonts\*
3 | x64\Release\GFX\*
4 | x64\Release\SFX\*
5 | x64\Release\NARC.exe
--------------------------------------------------------------------------------
/Documentation/Engine/ImageFormat.txt:
--------------------------------------------------------------------------------
1 | Accepted image formats:
2 |
3 | PNG, 32bit
4 | BMP, 24bit
5 |
6 | Alpha is needed when using PNG
--------------------------------------------------------------------------------
/SFX/EntitySounds/AmmoBox/AmmoBox_Pickup.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/EntitySounds/AmmoBox/AmmoBox_Pickup.mp3
--------------------------------------------------------------------------------
/SFX/EntitySounds/Demon/Demon_DeathScream.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/EntitySounds/Demon/Demon_DeathScream.mp3
--------------------------------------------------------------------------------
/SFX/EntitySounds/Turret/Turret_Explosion.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/EntitySounds/Turret/Turret_Explosion.mp3
--------------------------------------------------------------------------------
/GFX/PlayerAssets/Weapons/ARX160/MuzzleFlash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/PlayerAssets/Weapons/ARX160/MuzzleFlash.png
--------------------------------------------------------------------------------
/GFX/PlayerAssets/Weapons/HBRa3/MuzzleFlash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/GFX/PlayerAssets/Weapons/HBRa3/MuzzleFlash.png
--------------------------------------------------------------------------------
/Documentation/Engine/Entity Types and Movement.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/Documentation/Engine/Entity Types and Movement.txt
--------------------------------------------------------------------------------
/SFX/EntitySounds/Soldier/Soldier_DeathScream.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/StefanKubsch/NARC/HEAD/SFX/EntitySounds/Soldier/Soldier_DeathScream.mp3
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/Config.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | Lighting=true
3 |
4 | [AUDIO]
5 | BackgroundMusicEnabled=true
6 | BackgroundMusic=./SFX/BackgroundMusic/AtmoLoop.mp3
--------------------------------------------------------------------------------
/DATA/Levels/2/LevelData/Config.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | Lighting=false
3 |
4 | [AUDIO]
5 | BackgroundMusicEnabled=true
6 | BackgroundMusic=./SFX/BackgroundMusic/AtmoLoop.mp3
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/Config.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | Lighting=true
3 |
4 | [AUDIO]
5 | BackgroundMusicEnabled=false
6 | BackgroundMusic=./SFX/BackgroundMusic/AtmoLoop.mp3
--------------------------------------------------------------------------------
/Documentation/Engine/AudioFormat.txt:
--------------------------------------------------------------------------------
1 | Supported audio formats:
2 |
3 | SFX & Music
4 | MPEG1 MP3 (Samplerate, Bitrate and Number of Channels will be detected)
5 |
--------------------------------------------------------------------------------
/Documentation/Assets/Turret Info.txt:
--------------------------------------------------------------------------------
1 | Blender Turret model downloaded here:
2 |
3 | A-1 Turret
4 | by hjmediastudios
5 |
6 | https://www.blendswap.com/blends/view/4434
--------------------------------------------------------------------------------
/DATA/GameConfig/EffectsConfig.ini:
--------------------------------------------------------------------------------
1 | [EFFECTS]
2 | ; BloodstainDuration is given in frames
3 | BloodstainDuration=15
4 |
5 | [TEXTURES]
6 | Bloodstains=./GFX/Effects/Bloodstains.png
--------------------------------------------------------------------------------
/Documentation/Assets/AmmoBox Info.txt:
--------------------------------------------------------------------------------
1 | Blender AmmoBox model downloaded here:
2 |
3 | Author:
4 | Clint Bellanger
5 |
6 | https://opengameart.org/content/sci-fi-crate
7 |
--------------------------------------------------------------------------------
/DATA/Assets_Entities/AmmoBox/AssetData.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | AssetType=AmmoBox
3 | EntityAssetName=AmmoBox
4 |
5 | [AUDIO]
6 | AmmoPickup=./SFX/EntitySounds/AmmoBox/AmmoBox_Pickup.mp3
--------------------------------------------------------------------------------
/Documentation/Used Raycasting Tutorials/Lodev.url:
--------------------------------------------------------------------------------
1 | [{000214A0-0000-0000-C000-000000000046}]
2 | Prop3=19,11
3 | [InternetShortcut]
4 | IDList=
5 | URL=https://lodev.org/cgtutor/
6 |
--------------------------------------------------------------------------------
/NARC.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/DATA/Assets_Entities/Demon/AssetData.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | AssetType=Enemy
3 | EntityAssetName=Demon
4 |
5 | [AUDIO]
6 | KillSound=./SFX/EntitySounds/Demon/Demon_DeathScream.mp3
7 | AttackSound=./SFX/EntitySounds/Demon/Demon_Grunt.mp3
--------------------------------------------------------------------------------
/DATA/Assets_Entities/Turret/AssetData.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | AssetType=Turret
3 | EntityAssetName=Turret
4 |
5 | [AUDIO]
6 | KillSound=./SFX/EntitySounds/Turret/Turret_Explosion.mp3
7 | AttackSound=./SFX/EntitySounds/Turret/Turret_Shot.mp3
--------------------------------------------------------------------------------
/DATA/Assets_Entities/Soldier/AssetData.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | AssetType=Enemy
3 | EntityAssetName=Soldier
4 |
5 | [AUDIO]
6 | KillSound=./SFX/EntitySounds/Soldier/Soldier_DeathScream.mp3
7 | AttackSound=./SFX/EntitySounds/Soldier/Soldier_Shot.mp3
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/StaticLightsData.conf:
--------------------------------------------------------------------------------
1 | 8.5 1.5 1 0.7 0.6
2 | 8.5 6.5 0 0.5 0.5
3 | 10.5 6.5 0 0.5 0.5
4 | 8.5 8.5 0 0.5 0.5
5 | 10.5 8.5 0 0.5 0.5
6 | 8.5 6.5 2 0.1 7.0
7 | 10.5 6.5 2 0.1 7.0
8 | 8.5 8.5 2 0.1 7.0
9 | 10.5 8.5 2 0.1 7.0
--------------------------------------------------------------------------------
/Documentation/Used Raycasting Tutorials/Permadi Raycasting Tutorial.url:
--------------------------------------------------------------------------------
1 | [{000214A0-0000-0000-C000-000000000046}]
2 | Prop3=19,11
3 | [InternetShortcut]
4 | IDList=
5 | URL=https://permadi.com/1996/05/ray-casting-tutorial-table-of-contents/
6 |
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/MapDoorData.conf:
--------------------------------------------------------------------------------
1 | 0, 0, 0, 0, 0, 0, 0, 0
2 | 0, 0, 0, 0, 0, 0, 0, 0
3 | 0, 0, 0, 0, 0, 0, 0, 0
4 | 0, 0, 0, 0, 0, 0, 0, 0
5 | 0, 0, 0, 0, 0, 0, 0, 0
6 | 0, 0, 0, 0, 0, 0, 0, 0
7 | 0, 0, 0, 0, 0, 0, 0, 0
8 | 0, 0, 0, 0, 0, 0, 0, 0
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/MapFloorData.conf:
--------------------------------------------------------------------------------
1 | 1, 1, 1, 1, 1, 1, 1, 1
2 | 1, 1, 1, 1, 1, 1, 1, 1
3 | 1, 1, 1, 1, 1, 1, 1, 1
4 | 1, 1, 1, 1, 1, 1, 1, 1
5 | 1, 1, 1, 1, 1, 1, 1, 1
6 | 1, 1, 1, 1, 1, 1, 1, 1
7 | 1, 1, 1, 1, 1, 1, 1, 1
8 | 1, 1, 1, 1, 1, 1, 1, 1
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/MapWallData.conf:
--------------------------------------------------------------------------------
1 | 1, 1, 1, 1, 1, 1, 1, 1
2 | 1, 0, 0, 0, 0, 0, 0, 1
3 | 1, 0, 0, 0, 0, 0, 0, 1
4 | 1, 0, 0, 0, 0, 0, 0, 1
5 | 1, 0, 0, 0, 0, 0, 0, 1
6 | 1, 0, 0, 0, 0, 0, 0, 1
7 | 1, 0, 0, 0, 0, 0, 0, 1
8 | 1, 1, 1, 1, 1, 1, 1, 1
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/MapCeilingData.conf:
--------------------------------------------------------------------------------
1 | 1, 1, 1, 1, 1, 1, 1, 1
2 | 1, 1, 1, 1, 1, 1, 1, 1
3 | 1, 1, 1, 1, 1, 1, 1, 1
4 | 1, 1, 1, 1, 1, 1, 1, 1
5 | 1, 1, 1, 1, 1, 1, 1, 1
6 | 1, 1, 1, 1, 1, 1, 1, 1
7 | 1, 1, 1, 1, 1, 1, 1, 1
8 | 1, 1, 1, 1, 1, 1, 1, 1
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/TexturesData.conf:
--------------------------------------------------------------------------------
1 | Wall1.png
2 | Wall2.png
3 | Wall3.png
4 | Wall4.png
5 | Floor1.png
6 | Floor2.png
7 | Ceiling1.png
8 | Crate1.png
9 | Console1.png
10 | Console2.png
11 | Pipes1.png
12 | Pipes2.png
13 | Vent1.png
14 | Vent2.png
15 | Door1.png
--------------------------------------------------------------------------------
/DATA/GameConfig/GameConfig.ini:
--------------------------------------------------------------------------------
1 | [TEXTURES]
2 | ; TextureSize needs to be 64, 128, 256, 512, 1024, 2048, 4096, 8192
3 | TextureSize=64
4 | ; EntitySize needs to be 64, 128, 256, 512, 1024, 2048, 4096, 8192
5 | EntitySize=64
6 |
7 | [GENERAL]
8 | ; Framelock defines at how many fps the "physics" of the game will run
9 | FrameLock=60
10 |
11 |
--------------------------------------------------------------------------------
/DATA/Assets_Doors/Door_1_Data.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | ; OpenCloseSpeed is given in pixels per frame
3 | OpenCloseSpeed=4
4 | ; StayOpentime is given in seconds
5 | StayOpenTime=3
6 | MaximumOpenPercent=100.0
7 | MinimumOpenPercent=0.0
8 |
9 | [TEXTURE]
10 | DoorTexture=./GFX/LevelTextures/64/Door1.png
11 |
12 | [AUDIO]
13 | OpenCloseSound=./SFX/DoorSounds/Sliding_Door.mp3
--------------------------------------------------------------------------------
/DATA/GameConfig/RaycasterConfig.ini:
--------------------------------------------------------------------------------
1 | [RAYCASTER]
2 | PlaneXStartValue=0.0
3 | PlaneYStartValue=0.66
4 | ; VerticalLookUpLimit will be clamped between 0.0 and 0.4 if out of bounds!
5 | VerticalLookUpLimit=0.4
6 | ; VerticalLookDownLimit will be clamped between 0.0 and 0.4 if out of bounds!
7 | VerticalLookDownLimit=0.4
8 | VerticalLookStep=0.02
9 | FogOfWarDistance=2.5
10 |
11 |
--------------------------------------------------------------------------------
/DATA/Levels/1/PlayerData/Config.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | MoveSpeed=0.05
3 | Hitpoints=100
4 | CollisionDetectionWallDist=0.25
5 |
6 | [POSITION]
7 | PosX=14.5
8 | PosY=1.5
9 | DirX=-1.0
10 | DirY=0.0
11 |
12 | [WEAPON]
13 | SelectedWeapon=0
14 |
15 | [AUDIO]
16 | FootStepsAudio=./SFX/PlayerSounds/PlayerFootSteps.mp3
17 | HurtAudio=./SFX/PlayerSounds/Hurt.mp3
18 | DeathScreamAudio=./SFX/PlayerSounds/DeathScream.mp3
--------------------------------------------------------------------------------
/DATA/Levels/2/PlayerData/Config.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | MoveSpeed=0.05
3 | Hitpoints=100
4 | CollisionDetectionWallDist=0.25
5 |
6 | [POSITION]
7 | PosX=14.5
8 | PosY=1.5
9 | DirX=-1.0
10 | DirY=0.0
11 |
12 | [WEAPON]
13 | SelectedWeapon=0
14 |
15 | [AUDIO]
16 | FootStepsAudio=./SFX/PlayerSounds/PlayerFootSteps.mp3
17 | HurtAudio=./SFX/PlayerSounds/Hurt.mp3
18 | DeathScreamAudio=./SFX/PlayerSounds/DeathScream.mp3
--------------------------------------------------------------------------------
/DATA/Levels/3/PlayerData/Config.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | MoveSpeed=0.05
3 | Hitpoints=100
4 | CollisionDetectionWallDist=0.25
5 |
6 | [POSITION]
7 | PosX=5.5
8 | PosY=3.5
9 | DirX=-1.0
10 | DirY=0.0
11 |
12 | [WEAPON]
13 | SelectedWeapon=0
14 |
15 | [AUDIO]
16 | FootStepsAudio=./SFX/PlayerSounds/PlayerFootSteps.mp3
17 | HurtAudio=./SFX/PlayerSounds/Hurt.mp3
18 | DeathScreamAudio=./SFX/PlayerSounds/DeathScream.mp3
--------------------------------------------------------------------------------
/DATA/GameConfig/MenuConfig.ini:
--------------------------------------------------------------------------------
1 | [MENU]
2 | MenuPosX=100
3 | MenuPosY=200
4 |
5 | [MENUFONT]
6 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
7 | FontSize=30.0
8 | ColorRED=255
9 | ColorGREEN=255
10 | ColorBLUE=255
11 | OffsetX=0
12 | OffsetY=0
13 |
14 | [MENUFONTHIGHLIGHT]
15 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
16 | FontSize=30.0
17 | ColorRED=255
18 | ColorGREEN=255
19 | ColorBLUE=0
20 | OffsetX=0
21 | OffsetY=0
--------------------------------------------------------------------------------
/DATA/GameConfig/HUDHealthBarConfig.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | PosX=490
3 | PosY=40
4 | HealthBarWidth=15
5 | HealthBarLength=100
6 |
7 | [GREEN]
8 | Red=0
9 | Green=255
10 | Blue=0
11 | Alpha=255
12 |
13 | [RED]
14 | Red=255
15 | Green=0
16 | Blue=0
17 | Alpha=255
18 |
19 | [ORANGE]
20 | Red=255
21 | Green=165
22 | Blue=0
23 | Alpha=255
24 |
25 | [BLACK]
26 | Red=0
27 | Green=0
28 | Blue=0
29 | Alpha=255
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/_README - Description of ConfigFiles.txt:
--------------------------------------------------------------------------------
1 | TexturesData.conf
2 |
3 | Contains the filenames of the used textures.
4 | Need to be in the right order as used in "Map*Data".
5 |
6 | Format:
7 |
8 | One filename each line
9 |
10 | Example:
11 | Wall1.png
12 | Wall2.png
13 | Wall3.png
14 | Wall4.png
15 | Floor1.png
16 | Ceiling1.png
17 | Crate1.png
18 | Console1.png
19 | Console2.png
20 | Pipes1.png
21 | Pipes2.png
22 | Vent1.png
23 | Vent2.png
24 |
25 |
--------------------------------------------------------------------------------
/DATA/Levels/2/LevelData/_README - Description of ConfigFiles.txt:
--------------------------------------------------------------------------------
1 | TexturesData.conf
2 |
3 | Contains the filenames of the used textures.
4 | Need to be in the right order as used in "Map*Data".
5 |
6 | Format:
7 |
8 | One filename each line
9 |
10 | Example:
11 | Wall1.png
12 | Wall2.png
13 | Wall3.png
14 | Wall4.png
15 | Floor1.png
16 | Ceiling1.png
17 | Crate1.png
18 | Console1.png
19 | Console2.png
20 | Pipes1.png
21 | Pipes2.png
22 | Vent1.png
23 | Vent2.png
24 |
25 |
--------------------------------------------------------------------------------
/DATA/Levels/3/LevelData/_README - Description of ConfigFiles.txt:
--------------------------------------------------------------------------------
1 | TexturesData.conf
2 |
3 | Contains the filenames of the used textures.
4 | Need to be in the right order as used in "Map*Data".
5 |
6 | Format:
7 |
8 | One filename each line
9 |
10 | Example:
11 | Wall1.png
12 | Wall2.png
13 | Wall3.png
14 | Wall4.png
15 | Floor1.png
16 | Ceiling1.png
17 | Crate1.png
18 | Console1.png
19 | Console2.png
20 | Pipes1.png
21 | Pipes2.png
22 | Vent1.png
23 | Vent2.png
24 |
25 |
--------------------------------------------------------------------------------
/DATA/Assets_Weapons/Weapon_1_Data.ini:
--------------------------------------------------------------------------------
1 | [DATA]
2 | Name=HBRa3
3 | Weight=4.2
4 | PaceFactor=0.04
5 | Capacity=35
6 | Damage=10
7 | WeaponType=DirectHit
8 | CarriedAmmo=0
9 | Cadence=500
10 |
11 | [POSITION]
12 | PosX=320
13 | PosY=355
14 | FadeInOutSpeed=10
15 |
16 | [MUZZLEFLASH]
17 | MuzzleFlashDuration=5
18 | MuzzleFlashPosX=73
19 | MuzzleFlashPosY=0
20 |
21 | [AUDIO]
22 | SingleShotAudio=./SFX/WeaponSounds/HBRa3/SingleShot.mp3
23 | DryFireAudio=./SFX/WeaponSounds/HBRa3/DryFire.mp3
24 | ReloadAudio=./SFX/WeaponSounds/HBRa3/Reload.mp3
--------------------------------------------------------------------------------
/DATA/Assets_Weapons/Weapon_0_Data.ini:
--------------------------------------------------------------------------------
1 | [DATA]
2 | Name=ARX160
3 | Weight=3.1
4 | PaceFactor=0.05
5 | Capacity=30
6 | Damage=15
7 | WeaponType=DirectHit
8 | CarriedAmmo=0
9 | Cadence=700
10 |
11 | [POSITION]
12 | PosX=320
13 | PosY=350
14 | FadeInOutSpeed=10
15 |
16 | [MUZZLEFLASH]
17 | MuzzleFlashDuration=5
18 | MuzzleFlashPosX=65
19 | MuzzleFlashPosY=3
20 |
21 | [AUDIO]
22 | SingleShotAudio=./SFX/WeaponSounds/ARX160/SingleShot.mp3
23 | DryFireAudio=./SFX/WeaponSounds/ARX160/DryFire.mp3
24 | ReloadAudio=./SFX/WeaponSounds/ARX160/Reload.mp3
--------------------------------------------------------------------------------
/DATA/Levels/1/EntityData/0.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Demon
3 | EntityType=Enemy
4 | WalkAnimStepWidth=12
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.01
11 | MovementBehaviour=2
12 | AttackMode=1
13 |
14 | [POSITION]
15 | StartPosX=12.5
16 | StartPosY=4.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=100
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=10
27 | DamageHitrate=1
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/1/EntityData/1.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Demon
3 | EntityType=Neutral
4 | WalkAnimStepWidth=12
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.02
11 | MovementBehaviour=2
12 | AttackMode=0
13 |
14 | [POSITION]
15 | StartPosX=1.5
16 | StartPosY=9.5
17 |
18 | [DIRECTION]
19 | Direction=W
20 |
21 | [STATUS]
22 | Hitpoints=100
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=10
27 | DamageHitrate=1
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/1/EntityData/2.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Demon
3 | EntityType=Enemy
4 | WalkAnimStepWidth=12
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.02
11 | MovementBehaviour=2
12 | AttackMode=0
13 |
14 | [POSITION]
15 | StartPosX=13.5
16 | StartPosY=9.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=100
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=10
27 | DamageHitrate=1
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/1/EntityData/3.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=AmmoBox
3 | EntityType=AmmoBox
4 | WalkAnimStepWidth=0
5 | AttackAnimStepWidth=0
6 | KillAnimStepWidth=0
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.0
11 | MovementBehaviour=0
12 | AttackMode=0
13 |
14 | [POSITION]
15 | StartPosX=12.5
16 | StartPosY=7.5
17 |
18 | [DIRECTION]
19 | Direction=W
20 |
21 | [STATUS]
22 | Hitpoints=0
23 | HitAnimDuration=0
24 |
25 | [DAMAGE]
26 | DamagePoints=0
27 | DamageHitrate=0
28 |
29 | [CONTAINS]
30 | ContainedItem=ARX160
31 | ContainedItemValue=15
--------------------------------------------------------------------------------
/DATA/Levels/1/EntityData/4.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Soldier
3 | EntityType=Enemy
4 | WalkAnimStepWidth=8
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.01
11 | MovementBehaviour=2
12 | AttackMode=1
13 |
14 | [POSITION]
15 | StartPosX=5.5
16 | StartPosY=2.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=50
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=20
27 | DamageHitrate=2
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/0.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Demon
3 | EntityType=Enemy
4 | WalkAnimStepWidth=12
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.01
11 | MovementBehaviour=2
12 | AttackMode=0
13 |
14 | [POSITION]
15 | StartPosX=12.5
16 | StartPosY=4.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=100
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=10
27 | DamageHitrate=1
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/1.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Demon
3 | EntityType=Neutral
4 | WalkAnimStepWidth=12
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.02
11 | MovementBehaviour=2
12 | AttackMode=0
13 |
14 | [POSITION]
15 | StartPosX=1.5
16 | StartPosY=9.5
17 |
18 | [DIRECTION]
19 | Direction=W
20 |
21 | [STATUS]
22 | Hitpoints=100
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=10
27 | DamageHitrate=1
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/2.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Demon
3 | EntityType=Enemy
4 | WalkAnimStepWidth=12
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.02
11 | MovementBehaviour=2
12 | AttackMode=1
13 |
14 | [POSITION]
15 | StartPosX=13.5
16 | StartPosY=9.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=100
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=10
27 | DamageHitrate=1
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/4.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Turret
3 | EntityType=Turret
4 | WalkAnimStepWidth=6
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=16.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.01
11 | MovementBehaviour=1
12 | AttackMode=1
13 |
14 | [POSITION]
15 | StartPosX=9.5
16 | StartPosY=5.5
17 |
18 | [DIRECTION]
19 | Direction=E
20 |
21 | [STATUS]
22 | Hitpoints=500
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=25
27 | DamageHitrate=2
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/5.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Soldier
3 | EntityType=Enemy
4 | WalkAnimStepWidth=8
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.01
11 | MovementBehaviour=2
12 | AttackMode=1
13 |
14 | [POSITION]
15 | StartPosX=20.5
16 | StartPosY=20.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=50
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=20
27 | DamageHitrate=2
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/6.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Soldier
3 | EntityType=Enemy
4 | WalkAnimStepWidth=8
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.01
11 | MovementBehaviour=2
12 | AttackMode=1
13 |
14 | [POSITION]
15 | StartPosX=20.5
16 | StartPosY=30.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=50
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=20
27 | DamageHitrate=2
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/7.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=Soldier
3 | EntityType=Enemy
4 | WalkAnimStepWidth=8
5 | AttackAnimStepWidth=6
6 | KillAnimStepWidth=6
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.01
11 | MovementBehaviour=2
12 | AttackMode=1
13 |
14 | [POSITION]
15 | StartPosX=15.5
16 | StartPosY=15.5
17 |
18 | [DIRECTION]
19 | Direction=N
20 |
21 | [STATUS]
22 | Hitpoints=50
23 | HitAnimDuration=3
24 |
25 | [DAMAGE]
26 | DamagePoints=20
27 | DamageHitrate=2
28 |
29 | [CONTAINS]
30 | ContainedItem=Dummy
31 | ContainedItemValue=0
--------------------------------------------------------------------------------
/DATA/Levels/2/EntityData/3.ini:
--------------------------------------------------------------------------------
1 | [ENTITY]
2 | EntityTypeName=AmmoBox
3 | EntityType=AmmoBox
4 | WalkAnimStepWidth=0
5 | AttackAnimStepWidth=0
6 | KillAnimStepWidth=0
7 | EntityMoveV=64.0
8 |
9 | [MOVEMENT]
10 | MoveSpeed=0.0
11 | MovementBehaviour=0
12 | AttackMode=0
13 |
14 | [POSITION]
15 | StartPosX=12.5
16 | StartPosY=7.5
17 |
18 | [DIRECTION]
19 | Direction=W
20 |
21 | [STATUS]
22 | Hitpoints=0
23 | HitAnimDuration=0
24 |
25 | [DAMAGE]
26 | DamagePoints=0
27 | DamageHitrate=0
28 |
29 |
30 | [CONTAINS]
31 | ContainedItem=ARX160
32 | ContainedItemValue=15
--------------------------------------------------------------------------------
/DATA/GameConfig/TransitionsConfig.ini:
--------------------------------------------------------------------------------
1 | [GENERALFONT]
2 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
3 | FontSize=35.0
4 | ColorRED=255
5 | ColorGREEN=255
6 | ColorBLUE=255
7 | OffsetX=0
8 | OffsetY=0
9 |
10 | [GAMEOVERFONT]
11 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
12 | FontSize=40.0
13 | ColorRED=255
14 | ColorGREEN=255
15 | ColorBLUE=255
16 | OffsetX=0
17 | OffsetY=0
18 |
19 | [GAMEOVERFONT1]
20 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
21 | FontSize=30.0
22 | ColorRED=255
23 | ColorGREEN=255
24 | ColorBLUE=255
25 | OffsetX=0
26 | OffsetY=0
27 |
--------------------------------------------------------------------------------
/_PrepareX64Folders.cmd:
--------------------------------------------------------------------------------
1 | RD .\x64\Debug\DATA /S /Q
2 | RD .\x64\Debug\Fonts /S /Q
3 | RD .\x64\Debug\GFX /S /Q
4 | RD .\x64\Debug\SFX /S /Q
5 |
6 | RD .\x64\Release\DATA /S /Q
7 | RD .\x64\Release\Fonts /S /Q
8 | RD .\x64\Release\GFX /S /Q
9 | RD .\x64\Release\SFX /S /Q
10 |
11 | xcopy .\DATA .\x64\Debug\DATA\ /S
12 | xcopy .\Fonts .\x64\Debug\Fonts\ /S
13 | xcopy .\GFX .\x64\Debug\GFX\ /S
14 | xcopy .\SFX .\x64\Debug\SFX\ /S
15 |
16 | xcopy .\DATA .\x64\Release\DATA\ /S
17 | xcopy .\Fonts .\x64\Release\Fonts\ /S
18 | xcopy .\GFX .\x64\Release\GFX\ /S
19 | xcopy .\SFX .\x64\Release\SFX\ /S
20 |
21 | pause
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/MapDoorData.conf:
--------------------------------------------------------------------------------
1 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3 | 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
4 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
5 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
6 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
7 | 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0
8 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
9 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
10 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
11 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
12 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
13 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
14 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
15 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
16 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/MapWallData.conf:
--------------------------------------------------------------------------------
1 | 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1
2 | 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 2
3 | 1, 0, 0,12, 0, 0, 0, 0, 0, 0, 1
4 | 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 2
5 | 1, 0,11, 0, 0, 0, 8, 0, 0, 0, 1
6 | 2, 0, 0, 0, 0, 0, 8, 0, 0, 0,10
7 | 1, 3, 3, 3, 0, 8, 8, 0, 0, 0, 1
8 | 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2
9 | 1, 9,13,13,13, 0, 0, 0, 0, 0, 1
10 | 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2
11 | 1, 0,13, 0, 0, 0, 0, 0, 0, 0, 1
12 | 2, 0,14, 0, 0, 0, 0, 4, 0, 0, 2
13 | 1, 0,13, 0, 0, 0, 0, 0, 0, 0, 1
14 | 2, 0,14,13, 0, 0, 4, 0, 4, 0, 2
15 | 1, 0,13,13, 0, 0, 0, 0, 0, 0, 9
16 | 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
--------------------------------------------------------------------------------
/DATA/Assets_Weapons/README - Description of ConfigFiles.txt:
--------------------------------------------------------------------------------
1 | Weapon_x_TexturesData.conf
2 |
3 | Contains the filenames of the used textures for each weapon.
4 |
5 | Format:
6 |
7 | One filename each line
8 |
9 | Example:
10 |
11 | ./GFX/PlayerAssets/Weapons/ARX160/ARX160.png
12 |
13 |
14 | _____________________________________
15 |
16 |
17 | Weapon_x_MuzzleFlashTexturesData.conf
18 |
19 | Contains the filenames of the used muzzle flash texture for each weapon.
20 |
21 | Format:
22 |
23 | One filename each line
24 |
25 | Example:
26 |
27 | ./GFX/PlayerAssets/Weapons/ARX160/MuzzleFlash.png
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/MapCeilingData.conf:
--------------------------------------------------------------------------------
1 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
2 | 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7
3 | 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7
4 | 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7
5 | 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7
6 | 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7
7 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
8 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
9 | 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7
10 | 7, 7, 7, 7, 7, 7, 6, 7, 6, 7, 7
11 | 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7
12 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
13 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
14 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
15 | 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7
16 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
--------------------------------------------------------------------------------
/DATA/Levels/1/LevelData/MapFloorData.conf:
--------------------------------------------------------------------------------
1 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
2 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
3 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
4 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
5 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
6 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
7 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
8 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
9 | 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 5
10 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
11 | 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 5
12 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
13 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
14 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
15 | 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5
16 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
--------------------------------------------------------------------------------
/DATA/GameConfig/HUDMinimapConfig.ini:
--------------------------------------------------------------------------------
1 | [GENERAL]
2 | PosX=20
3 | PosY=20
4 | ; ShowWayoints is used for debug reasons
5 | ShowWaypoints=true
6 |
7 | [PLAYER]
8 | Red=0
9 | Green=255
10 | Blue=0
11 | Alpha=255
12 |
13 | [ENEMY]
14 | Red=255
15 | Green=0
16 | Blue=0
17 | Alpha=255
18 |
19 | [NEUTRAL]
20 | Red=255
21 | Green=0
22 | Blue=255
23 | Alpha=255
24 |
25 | [AMMO]
26 | Red=255
27 | Green=255
28 | Blue=0
29 | Alpha=255
30 |
31 | [WALLS]
32 | Red=255
33 | Green=165
34 | Blue=0
35 | Alpha=255
36 |
37 | [DOORS]
38 | Red=128
39 | Green=128
40 | Blue=128
41 | Alpha=255
42 |
43 | [WAYPOINT]
44 | Red=255
45 | Green=0
46 | Blue=0
47 | Alpha=255
48 |
49 |
50 |
--------------------------------------------------------------------------------
/DATA/GameConfig/HUDWeaponDisplayConfig.ini:
--------------------------------------------------------------------------------
1 | [HUD]
2 | WeaponHUDPosX=0
3 | WeaponHUDPosY=0
4 | CrosshairFileName=./GFX/HUD/Crosshair.png
5 | WeaponHUDFileName=./GFX/HUD/WeaponHUD.png
6 |
7 | [HUDAMMOFONT]
8 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
9 | FontSize=40.0
10 | ColorRED=255
11 | ColorGREEN=0
12 | ColorBLUE=0
13 | OffsetX=17
14 | OffsetY=19
15 |
16 | [HUDCARRIEDAMMOFONT]
17 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
18 | FontSize=14.0
19 | ColorRED=255
20 | ColorGREEN=255
21 | ColorBLUE=255
22 | OffsetX=130
23 | OffsetY=46
24 |
25 | [HUDWEAPONFONT]
26 | FontName=./Fonts/Ubuntu_Mono/UbuntuMono-Bold.ttf
27 | FontSize=14.0
28 | ColorRED=255
29 | ColorGREEN=255
30 | ColorBLUE=255
31 | OffsetX=130
32 | OffsetY=29
--------------------------------------------------------------------------------
/Sources/Game_Folder.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ***************************************************
3 | * *
4 | * Game_Folder.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ***************************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 |
14 | inline const std::string LevelFolder{ "./DATA/Levels/" };
15 | inline const std::string GameConfigFolder{ "./DATA/GameConfig/" };
16 |
17 | inline const std::string AssetsEntitiesFolder{ "./DATA/Assets_Entities/" };
18 | inline const std::string AssetsDoorsFolder{ "./DATA/Assets_Doors/" };
19 | inline const std::string AssetsWeaponsFolder{ "./DATA/Assets_Weapons/" };
20 |
21 | inline const std::string GFXEntitiesFolder{ "./GFX/Entities/" };
--------------------------------------------------------------------------------
/DATA/GameConfig/IntroHeader.txt:
--------------------------------------------------------------------------------
1 | ****************************************************
2 | * _______ _____ ___________________ *
3 | * \ \ / _ \\______ \_ ___ \ *
4 | * / | \ / /_\ \| _/ \ \/ *
5 | * / | \/ | \ | \ \____ *
6 | * \____|__ /\____|__ /____|_ /\______ / *
7 | * \/ \/ \/ \/ *
8 | * *
9 | * *
10 | * Not Another RayCaster *
11 | * *
12 | * (C)opyright 2017 - 2020 by Stefan Kubsch *
13 | * *
14 | ****************************************************
15 |
16 | Initializing game engine...
17 |
18 |
19 |
--------------------------------------------------------------------------------
/DATA/GameConfig/InputConfig.ini:
--------------------------------------------------------------------------------
1 | [MOUSE]
2 | MouseSensitivity=0.6
3 | MouseSensitivityLowerLimit=0.1
4 | MouseSensitivityUpperLimit=3.0
5 | MouseSensitivityStep=0.01
6 | MouseIcon=./GFX/HUD/Mouse.png
7 |
8 | [GAMECONTROLLER]
9 | DeadZone=0.3
10 | Sensitivity=0.3
11 | RotationXLimit=0.01
12 | RepeatIntervall=0
13 | VirtMouseUpKey=38
14 | VirtMouseDownKey=40
15 | VirtMouseLeftKey=37
16 | VirtMouseRightKey=39
17 | FireSingleShotKey=162
18 | RapidFireKey=160
19 | ChangeWeaponUpKey=33
20 | ChangeWeaponDownKey=34
21 | XBoxControllerIcon=./GFX/HUD/XBoxController.png
22 |
23 | [KEYBOARD]
24 | MoveForwardKey=87
25 | MoveBackwardKey=83
26 | StrafeLeftKey=65
27 | StrafeRightKey=68
28 | ReloadWeaponKey=82
29 | HUDKey=72
30 | MiniMapKey=77
31 | ActionKey=32
32 | IncreaseMouseSensitivityKey=107
33 | DecreaseMouseSensitivityKey=109
34 | SelectNextLevelKey=78
35 | SwitchLightingKey=76
36 | PauseKey=27
37 | MenuItemDownKey=40
38 | MenuItemUpKey=38
39 | MenuItemSelectKey=13
40 |
--------------------------------------------------------------------------------
/Documentation/Development/Used Software.txt:
--------------------------------------------------------------------------------
1 | Development:
2 |
3 | Microsoft Visual Studio 2022 Community Edition
4 | https://visualstudio.microsoft.com/de/vs/community/
5 |
6 | PVS Studio (Static Code Analyzer)
7 | https://www.viva64.com/en/pvs-studio/
8 |
9 | LLVM
10 | https://llvm.org/
11 |
12 | CLANG Power Tools (-> Tidy, Static Code Analyzer)
13 | https://marketplace.visualstudio.com/items?itemName=caphyon.ClangPowerTools
14 |
15 | Github Desktop
16 | https://desktop.github.com/
17 |
18 |
19 | 3D Models:
20 |
21 | Blender
22 | https://www.blender.org/
23 |
24 |
25 | Graphics:
26 |
27 | IrfanView
28 | https://www.irfanview.com/
29 |
30 | GIMP
31 | https://www.gimp.org/
32 |
33 | PNGGauntlet (excellent PNG compression!)
34 | https://pnggauntlet.com/
35 |
36 | xnConvert (Image batch processing)
37 | https://www.xnview.com/de/xnconvert/
38 |
39 |
40 | Audio:
41 |
42 | Audacity
43 | https://www.audacityteam.org/
44 |
45 |
46 | Zip:
47 |
48 | 7Zip Standalone
49 | https://www.7-zip.org/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to
25 |
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf_simd.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ****************************************************
3 | * *
4 | * lwmf_simd - lightweight media framework *
5 | * *
6 | * (C) 2019 - present by Stefan Kubsch *
7 | * *
8 | ****************************************************
9 | */
10 |
11 | #pragma once
12 |
13 | #include
14 | #include
15 | #include
16 |
17 | #include "lwmf_logging.hpp"
18 |
19 | namespace lwmf
20 | {
21 |
22 |
23 | void CheckForSSESupport();
24 |
25 | //
26 | // Functions
27 | //
28 |
29 | inline void CheckForSSESupport()
30 | {
31 | LWMFSystemLog.AddEntry(LogLevel::Info, __FILENAME__, __LINE__, "Checking for SSE 4.2 Extensions...");
32 |
33 | std::array CPUInfo{};
34 | __cpuid(CPUInfo.data(), 1);
35 |
36 | if ((CPUInfo[2] & (1 << 20)) == 0)
37 | {
38 | LWMFSystemLog.AddEntry(LogLevel::Critical, __FILENAME__, __LINE__, "lwmf::CheckForSSESupport(): SSE 4.2 is not supported on this computer!");
39 | }
40 | else
41 | {
42 | LWMFSystemLog.AddEntry(LogLevel::Info, __FILENAME__, __LINE__, "SSE 4.2 extension found!");
43 | }
44 | }
45 |
46 |
47 | } // namespace lwmf
48 |
--------------------------------------------------------------------------------
/Sources/GFX_ImageHandling.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ******************************************
3 | * *
4 | * GFX_ImageHandling.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ******************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 | #include
14 |
15 | #include "Tools_ErrorHandling.hpp"
16 |
17 | namespace GFX_ImageHandling
18 | {
19 |
20 |
21 | lwmf::TextureStruct ImportImage(const std::string& ImageFileName);
22 | lwmf::TextureStruct ImportTexture(const std::string& ImageFileName, std::int_fast32_t Size);
23 |
24 | //
25 | // Functions
26 | //
27 |
28 | inline lwmf::TextureStruct ImportImage(const std::string& ImageFileName)
29 | {
30 | lwmf::TextureStruct TempTexture{};
31 | lwmf::LoadPNG(TempTexture, ImageFileName);
32 |
33 | return TempTexture;
34 | }
35 |
36 | inline lwmf::TextureStruct ImportTexture(const std::string& ImageFileName, const std::int_fast32_t Size)
37 | {
38 | lwmf::TextureStruct TempTexture{};
39 | lwmf::LoadPNG(TempTexture, ImageFileName);
40 |
41 | if (Tools_ErrorHandling::CheckTextureSize(TempTexture.Width, TempTexture.Height, Size, StopOnError))
42 | {
43 | // Dummy, just check Size
44 | }
45 |
46 | return TempTexture;
47 | }
48 |
49 |
50 | } // namespace GFX_ImageHandling
51 |
--------------------------------------------------------------------------------
/Sources/GFX_LightingClass.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ***************************************************
3 | * *
4 | * GFX_LightingClass.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ***************************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 |
14 | class GFX_LightingClass final
15 | {
16 | public:
17 | GFX_LightingClass(float PosX, float PosY, std::int_fast32_t Location, float Radius, float Intensity);
18 | float GetIntensity(float x, float y) const;
19 |
20 | // Location settings:
21 | // see LevelMapLayers in "Game_LevelHandling.hpp"
22 | std::int_fast32_t Location{};
23 |
24 | private:
25 | lwmf::FloatPointStruct Pos{};
26 | float Radius{};
27 | float Intensity{};
28 | };
29 |
30 | inline GFX_LightingClass::GFX_LightingClass(const float PosX, const float PosY, const std::int_fast32_t Location, const float Radius, const float Intensity)
31 | {
32 | this->Pos = { PosX, PosY };
33 | this->Location = Location;
34 | this->Radius = Radius;
35 | this->Intensity = Intensity;
36 | }
37 |
38 | inline float GFX_LightingClass::GetIntensity(const float x, const float y) const
39 | {
40 | const float Distance{ lwmf::CalcEuclidianDistance(x, Pos.X, y, Pos.Y) };
41 | return Distance > Radius ? 0.0F : Intensity * ((Radius - Distance) / Radius);
42 | }
--------------------------------------------------------------------------------
/Sources/Tools_Cleanup.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ******************************************************************
3 | * *
4 | * Tools_Cleanup.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ******************************************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include "Game_LevelHandling.hpp"
13 | #include "Game_EntityHandling.hpp"
14 | #include "Game_Doors.hpp"
15 | #include "Game_WeaponHandling.hpp"
16 |
17 | namespace Tools_Cleanup
18 | {
19 |
20 |
21 | void DestroySubsystems();
22 | void CloseAllAudio();
23 |
24 | //
25 | // Functions
26 | //
27 |
28 | inline void DestroySubsystems()
29 | {
30 | NARCLog.AddEntry(lwmf::LogLevel::Info, __FILENAME__, __LINE__, "Destroy subsystems...");
31 |
32 | lwmf::UnregisterRawInputDevice(lwmf::DeviceIdentifier::HID_MOUSE);
33 | lwmf::UnregisterRawInputDevice(lwmf::DeviceIdentifier::HID_KEYBOARD);
34 | lwmf::DeleteOpenGLContext();
35 | }
36 |
37 | inline void CloseAllAudio()
38 | {
39 | NARCLog.AddEntry(lwmf::LogLevel::Info, __FILENAME__, __LINE__, "Close all audio handles...");
40 |
41 | Game_LevelHandling::CloseAudio();
42 | Game_EntityHandling::CloseAudio();
43 | Game_Doors::CloseAudio();
44 | Game_WeaponHandling::CloseAudio();
45 | Player.CloseAudio();
46 | }
47 |
48 |
49 | } // namespace Tools_Cleanup
--------------------------------------------------------------------------------
/NARC.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.28917.181
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NARC", "NARC.vcxproj", "{EE2F2228-2772-4154-8096-70BEAFC64A02}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Debug|x64.ActiveCfg = Debug|x64
17 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Debug|x64.Build.0 = Debug|x64
18 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Debug|x86.ActiveCfg = Debug|Win32
19 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Debug|x86.Build.0 = Debug|Win32
20 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Release|x64.ActiveCfg = Release|x64
21 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Release|x64.Build.0 = Release|x64
22 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Release|x86.ActiveCfg = Release|Win32
23 | {EE2F2228-2772-4154-8096-70BEAFC64A02}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {A76C1262-1E4D-4617-864C-DC117B13FEBA}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Sources/Game_PreGame.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ******************************************
3 | * *
4 | * Game_PreGame.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ******************************************
8 | */
9 |
10 | #pragma once
11 |
12 |
13 | #include
14 | #include
15 | #include
16 |
17 | #include "Game_GlobalDefinitions.hpp"
18 | #include "Tools_Console.hpp"
19 | #include "Tools_ErrorHandling.hpp"
20 |
21 | namespace Game_PreGame
22 | {
23 |
24 |
25 | void ShowIntroHeader();
26 | void SetOptions();
27 |
28 | //
29 | // Functions
30 | //
31 |
32 | inline void ShowIntroHeader()
33 | {
34 | NARCLog.AddEntry(lwmf::LogLevel::Info, __FILENAME__, __LINE__, "Show intro header...");
35 |
36 | if (const std::string FileName{ GameConfigFolder + "IntroHeader.txt" }; Tools_ErrorHandling::CheckFileExistence(FileName, ContinueOnError))
37 | {
38 | std::ifstream IntroHeaderFile(FileName, std::ios::in);
39 |
40 | std::string Line;
41 |
42 | while (std::getline(IntroHeaderFile, Line))
43 | {
44 | std::cout << Line << "\n";
45 | }
46 | }
47 | }
48 |
49 | inline void SetOptions()
50 | {
51 | std::cout << "***************\n* SET OPTIONS *\n***************\n\n";
52 |
53 | SelectedLevel = NumberOfLevels > StartLevel ? Tools_Console::QuestionForValue("Please select Level (" + std::to_string(StartLevel) + " - " + std::to_string(NumberOfLevels) + "): ", StartLevel, NumberOfLevels) : StartLevel;
54 | Fullscreen = Tools_Console::QuestionForYesNo("Fullscreen (y/n): ");
55 | VSync = Tools_Console::QuestionForYesNo("VSync (y/n): ");
56 | }
57 |
58 |
59 | } // namespace Game_PreGame
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf_fpscounter.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *******************************************************
3 | * *
4 | * lwmf_fpscounter - lightweight media framework *
5 | * *
6 | * (C) 2019 - present by Stefan Kubsch *
7 | * *
8 | *******************************************************
9 | */
10 |
11 | #pragma once
12 |
13 | #define NOMINMAX
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 |
21 | #include "lwmf_text.hpp"
22 | #include "lwmf_texture.hpp"
23 |
24 | namespace lwmf
25 | {
26 |
27 |
28 | void FPSCounter();
29 | void DisplayFPSCounter(TextureStruct& Texture, std::int_fast32_t PosX, std::int_fast32_t PosY, std::int_fast32_t Color);
30 |
31 | //
32 | // Variables and constants
33 | //
34 |
35 | inline std::int_fast32_t FPS{};
36 |
37 | //
38 | // Functions
39 | //
40 |
41 | inline void FPSCounter()
42 | {
43 | static ULONGLONG FPSUpdate{};
44 | static std::int_fast32_t FPSFrames{};
45 |
46 | if (const ULONGLONG SystemTime{ GetTickCount64() }; SystemTime - FPSUpdate >= 1000)
47 | {
48 | FPS = FPSFrames;
49 | FPSUpdate = SystemTime;
50 | FPSFrames = 0;
51 | }
52 |
53 | ++FPSFrames;
54 | }
55 |
56 | inline void DisplayFPSCounter(TextureStruct& Texture, const std::int_fast32_t PosX, const std::int_fast32_t PosY, const std::int_fast32_t Color)
57 | {
58 | std::array FPSString{};
59 | std::to_chars(FPSString.data(), FPSString.data() + FPSString.size(), FPS);
60 | RenderText(Texture, "fps:" + std::string(FPSString.data()), PosX, PosY, Color);
61 | }
62 |
63 |
64 | } // namespace lwmf
--------------------------------------------------------------------------------
/Sources/GFX_Window.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ******************************************
3 | * *
4 | * GFX_Window.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ******************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 | #include
14 |
15 | #include "Game_GlobalDefinitions.hpp"
16 | #include "Tools_ErrorHandling.hpp"
17 |
18 | namespace GFX_Window
19 | {
20 |
21 |
22 | void Init();
23 |
24 | //
25 | // Functions
26 | //
27 |
28 | inline void Init()
29 | {
30 | NARCLog.AddEntry(lwmf::LogLevel::Info, __FILENAME__, __LINE__, "Init window...");
31 |
32 | if (const std::string INIFile{ GameConfigFolder + "WindowConfig.ini" }; Tools_ErrorHandling::CheckFileExistence(INIFile, StopOnError))
33 | {
34 | lwmf::CreateOpenGLWindow(lwmf::WindowInstance,
35 | Canvas,
36 | lwmf::ReadINIValue(INIFile, "WINDOW", "ViewportWidth"),
37 | lwmf::ReadINIValue(INIFile, "WINDOW", "ViewportHeight"),
38 | lwmf::ReadINIValue(INIFile, "WINDOW", "WindowName").c_str(), Fullscreen);
39 |
40 | VSync ? lwmf::SetVSync(-1) : lwmf::SetVSync(0);
41 |
42 | // lwmf::Fullscreenflag is always true, since window cannot be resized - so we can create faster OpenGL textures
43 | lwmf::FullscreenFlag = true;
44 | lwmf::InitOpenGLLoader();
45 |
46 | // Prepare main shader and texture for rendering
47 | CanvasShader.LoadShader("Default", Canvas);
48 | CanvasShader.PrepareLWMFTexture(Canvas, 0, 0);
49 |
50 | // Inital clearance of window. Looks better while loading the rest of the game...
51 | lwmf::ClearBuffer();
52 | lwmf::SwapBuffer();
53 | }
54 | }
55 |
56 |
57 | } // namespace GFX_Window
58 |
59 |
--------------------------------------------------------------------------------
/Sources/Game_GlobalDefinitions.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ***************************************************
3 | * *
4 | * Game_GlobalDefinitions.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ***************************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 | #include
14 |
15 | // Setting planes/viewport for raycaster
16 | inline lwmf::FloatPointStruct Plane{};
17 | inline lwmf::FloatPointStruct PlaneStartValue{};
18 |
19 | // Settings for looking up/down
20 | inline float VerticalLookCamera{};
21 | inline float VerticalLookUpLimit{};
22 | inline float VerticalLookDownLimit{};
23 | inline float VerticalLookStep{};
24 | inline float FogOfWarDistance{};
25 | inline std::int_fast32_t VerticalLook{};
26 |
27 | // Current Level + Number of Levels
28 | inline std::int_fast32_t StartLevel{ 1 };
29 | inline std::int_fast32_t SelectedLevel{};
30 | inline std::int_fast32_t NumberOfLevels{};
31 |
32 | // Options for Renderer
33 | inline bool VSync{};
34 | inline bool Fullscreen{};
35 |
36 | // Size of textures (width and height)
37 | inline std::int_fast32_t TextureSize{};
38 | inline std::int_fast32_t EntitySize{};
39 |
40 | // Set factor for bitshifting from TextureSize
41 | // 7 for 128x128, 8 for 256x256, 9 for 512x512, 10 for 1024x1024
42 | // is calculated in "Game_Config.hpp" dependent on given TextureSize
43 | inline std::int_fast32_t TextureSizeShiftFactor{};
44 |
45 | // Variables for fixed timestep gameloop
46 | inline std::uint_fast32_t LengthOfFrame{};
47 | inline std::uint_fast32_t FrameLock{};
48 | inline bool GamePausedFlag{};
49 | inline bool GameControllerFlag{};
50 | inline bool QuitGameFlag{};
51 |
52 | // Random Number Generator
53 | // C++ 11 Mersenne-Twister-Engine
54 | inline std::mt19937 RNG(std::random_device{}());
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ********************************************************************
3 | * *
4 | * lwmf - lightweight media framework *
5 | * *
6 | * (C) 2019 - present by Stefan Kubsch *
7 | * *
8 | ********************************************************************
9 | */
10 |
11 | #pragma once
12 |
13 | #define WIN32_LEAN_AND_MEAN
14 |
15 | // *************************************************
16 | // ** YOU CAN MAKE SOME SETTINGS HERE !!! **
17 | // *************************************************
18 |
19 | // #define LWMF_LOGGINGENABLED in your application if you want to write any logsfiles
20 | // #define LWMF_THROWEXCEPTIONS in your application if you want to handle errors by exceptions
21 |
22 | #include "lwmf_logging.hpp"
23 |
24 | // Establish lwmf system logfile
25 | // Will not be created if "LoggingEnabled" = false
26 | inline lwmf::Logging LWMFSystemLog("lwmf_systemlog.log");
27 |
28 | #include "lwmf_simd.hpp"
29 | #include "lwmf_math.hpp"
30 | #include "lwmf_general.hpp"
31 | #include "lwmf_color.hpp"
32 | #include "lwmf_openglloader.hpp"
33 | #include "lwmf_openglwindow.hpp"
34 | #include "lwmf_openglshader.hpp"
35 | #include "lwmf_rawinput.hpp"
36 | #include "lwmf_pixel.hpp"
37 | #include "lwmf_lines.hpp"
38 | #include "lwmf_fill.hpp"
39 | #include "lwmf_rectangles.hpp"
40 | #include "lwmf_circles.hpp"
41 | #include "lwmf_ellipses.hpp"
42 | #include "lwmf_polygons.hpp"
43 | #include "lwmf_texture.hpp"
44 | #include "lwmf_bmp.hpp"
45 | #include "lwmf_png.hpp"
46 | #include "lwmf_text.hpp"
47 | #include "lwmf_mp3player.hpp"
48 | #include "lwmf_gamepad.hpp"
49 | #include "lwmf_perlinnoise.hpp"
50 | #include "lwmf_fpscounter.hpp"
51 | #include "lwmf_multithreading.hpp"
52 | #include "lwmf_inifile.hpp"
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf_pixel.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ****************************************************
3 | * *
4 | * lwmf_pixel - lightweight media framework *
5 | * *
6 | * (C) 2019 - present by Stefan Kubsch *
7 | * *
8 | ****************************************************
9 | */
10 |
11 | #pragma once
12 |
13 | #include
14 |
15 | #include "lwmf_texture.hpp"
16 |
17 | namespace lwmf
18 | {
19 |
20 | void SetPixel(TextureStruct& Texture, std::int_fast32_t x, std::int_fast32_t y, std::int_fast32_t Color);
21 | void SetPixelSafe(TextureStruct& Texture, std::int_fast32_t x, std::int_fast32_t y, std::int_fast32_t Color);
22 | std::int_fast32_t GetPixel(const TextureStruct& Texture, std::int_fast32_t x, std::int_fast32_t y);
23 | std::int_fast32_t GetPixelSafe(const TextureStruct& Texture, std::int_fast32_t x, std::int_fast32_t y);
24 |
25 | //
26 | // Functions
27 | //
28 |
29 | inline void SetPixel(TextureStruct& Texture, const std::int_fast32_t x, const std::int_fast32_t y, const std::int_fast32_t Color)
30 | {
31 | Texture.Pixels[y * Texture.Width + x] = Color;
32 | }
33 |
34 | inline void SetPixelSafe(TextureStruct& Texture, const std::int_fast32_t x, const std::int_fast32_t y, const std::int_fast32_t Color)
35 | {
36 | if (static_cast(x) >= static_cast(Texture.Width) || static_cast(y) >= static_cast(Texture.Height))
37 | {
38 | return;
39 | }
40 |
41 | Texture.Pixels[y * Texture.Width + x] = Color;
42 | }
43 |
44 | inline std::int_fast32_t GetPixel(const TextureStruct& Texture, const std::int_fast32_t x, const std::int_fast32_t y)
45 | {
46 | return Texture.Pixels[y * Texture.Width + x];
47 | }
48 |
49 | inline std::int_fast32_t GetPixelSafe(const TextureStruct& Texture, const std::int_fast32_t x, const std::int_fast32_t y)
50 | {
51 | if (static_cast(x) >= static_cast(Texture.Width) || static_cast(y) >= static_cast(Texture.Height))
52 | {
53 | return 0x00000000;
54 | }
55 |
56 | return Texture.Pixels[y * Texture.Width + x];
57 | }
58 |
59 |
60 | } // namespace lwmf
--------------------------------------------------------------------------------
/Sources/Game_Effects.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ******************************************
3 | * *
4 | * Game_Effects.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ******************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 | #include
14 | #include
15 |
16 | #include "Tools_ErrorHandling.hpp"
17 |
18 | namespace Game_Effects
19 | {
20 |
21 |
22 | void InitEffects();
23 | void StartBloodstainDrawing();
24 | void CountdownBloodstainCounter();
25 | void DrawBloodstain();
26 |
27 | //
28 | // Variables and constants
29 | //
30 |
31 | inline lwmf::ShaderClass BloodstainShader{};
32 | inline std::int_fast32_t BloodstainDuration{};
33 | inline std::int_fast32_t BloodstainCounter{};
34 | inline bool BloodstainFlag{};
35 |
36 | //
37 | // Functions
38 | //
39 |
40 | inline void InitEffects()
41 | {
42 | NARCLog.AddEntry(lwmf::LogLevel::Info, __FILENAME__, __LINE__, "Init effects...");
43 |
44 | if (const std::string INIFile{ GameConfigFolder + "EffectsConfig.ini" }; Tools_ErrorHandling::CheckFileExistence(INIFile, StopOnError))
45 | {
46 | // Init the "bloodstain" effect when player is hit by an enemy
47 | BloodstainDuration = lwmf::ReadINIValue(INIFile, "EFFECTS", "BloodstainDuration");
48 | BloodstainShader.LoadShader("Default", Canvas);
49 |
50 | const lwmf::TextureStruct TempTexture{ GFX_ImageHandling::ImportImage(lwmf::ReadINIValue(INIFile, "TEXTURES", "Bloodstains")) };
51 | BloodstainShader.LoadStaticTextureInGPU(TempTexture, &BloodstainShader.OGLTextureID, 0, 0, TempTexture.Width, TempTexture.Height);
52 | }
53 | }
54 |
55 | inline void StartBloodstainDrawing()
56 | {
57 | BloodstainFlag = true;
58 | BloodstainCounter = BloodstainDuration;
59 | }
60 |
61 | inline void CountdownBloodstainCounter()
62 | {
63 | if (--BloodstainCounter == 0)
64 | {
65 | BloodstainFlag = false;
66 | }
67 | }
68 |
69 | inline void DrawBloodstain()
70 | {
71 | if (BloodstainFlag)
72 | {
73 | BloodstainShader.RenderStaticTexture(&BloodstainShader.OGLTextureID, true, std::clamp(0.5F - (0.5F / static_cast(BloodstainCounter)), 0.0F, 0.5F));
74 | }
75 | }
76 |
77 |
78 | } // namespace Game_Effects
79 |
--------------------------------------------------------------------------------
/Sources/lwmf/lwmf_fill.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ****************************************************
3 | * *
4 | * lwmf_fill - lightweight media framework *
5 | * *
6 | * (C) 2019 - present by Stefan Kubsch *
7 | * *
8 | ****************************************************
9 | */
10 |
11 | #pragma once
12 |
13 | #include
14 | #include
15 | #include
16 |
17 | #include "lwmf_general.hpp"
18 | #include "lwmf_texture.hpp"
19 | #include "lwmf_pixel.hpp"
20 |
21 | namespace lwmf
22 | {
23 |
24 |
25 | void ScanlineFill(TextureStruct& Texture, const IntPointStruct& CenterPoint, std::int_fast32_t FillColor);
26 |
27 | //
28 | // Functions
29 | //
30 |
31 | inline void ScanlineFill(TextureStruct& Texture, const IntPointStruct& CenterPoint, const std::int_fast32_t FillColor)
32 | {
33 | IntPointStruct Points{ CenterPoint };
34 | std::vector Stack{};
35 | Stack.push_back(Points);
36 |
37 | while (!Stack.empty())
38 | {
39 | Points = Stack.back();
40 | Stack.pop_back();
41 |
42 | std::int_fast32_t x1{ Points.X };
43 |
44 | while (x1 >= 0 && Texture.Pixels[Points.Y * Texture.Width + x1] != FillColor)
45 | {
46 | --x1;
47 | }
48 |
49 | ++x1;
50 |
51 | bool Above{};
52 | bool Below{};
53 | const std::int_fast32_t TempY{ Points.Y * Texture.Width };
54 |
55 | while (x1 < Texture.Width && Texture.Pixels[TempY + x1] != FillColor)
56 | {
57 | Texture.Pixels[TempY + x1] = FillColor;
58 |
59 | if (!Above && Points.Y > 0 && Texture.Pixels[(Points.Y - 1) * Texture.Width + x1] != FillColor)
60 | {
61 | Stack.push_back({ x1, Points.Y - 1 });
62 | Above = true;
63 | }
64 | else if (Above && Points.Y > 0 && Texture.Pixels[(Points.Y - 1) * Texture.Width + x1] == FillColor)
65 | {
66 | Above = false;
67 | }
68 |
69 | if (!Below && Points.Y < Texture.Height - 1 && Texture.Pixels[(Points.Y + 1) * Texture.Width + x1] != FillColor)
70 | {
71 | Stack.push_back({ x1, Points.Y + 1 });
72 | Below = true;
73 | }
74 | else if (Below && Points.Y < Texture.Height - 1 && Texture.Pixels[(Points.Y + 1) * Texture.Width + x1] == FillColor)
75 | {
76 | Below = false;
77 | }
78 |
79 | ++x1;
80 | }
81 | }
82 | }
83 |
84 |
85 | } // namespace lwmf
--------------------------------------------------------------------------------
/Sources/HID_Mouse.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ***********************************************
3 | * *
4 | * HID_Mouse.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ***********************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 |
14 | #include "Tools_ErrorHandling.hpp"
15 |
16 | namespace HID_Mouse
17 | {
18 |
19 |
20 | void Init();
21 | void ChangeMouseSensitivity(char Change);
22 |
23 | //
24 | // Variables and constants
25 | //
26 |
27 | inline lwmf::ShaderClass MouseIconShader{};
28 | inline lwmf::IntPointStruct MousePos{};
29 | inline lwmf::IntPointStruct OldMousePos{};
30 |
31 | inline float MouseSensitivity{};
32 | inline float MouseSensitivityLowerLimit{};
33 | inline float MouseSensitivityUpperLimit{};
34 | inline float MouseSensitivityStep{};
35 |
36 | //
37 | // Functions
38 | //
39 |
40 | inline void Init()
41 | {
42 | NARCLog.AddEntry(lwmf::LogLevel::Info, __FILENAME__, __LINE__, "Init mouse config...");
43 |
44 | if (const std::string INIFile{ GameConfigFolder + "InputConfig.ini" }; Tools_ErrorHandling::CheckFileExistence(INIFile, StopOnError))
45 | {
46 | MouseSensitivityLowerLimit = lwmf::ReadINIValue(INIFile, "MOUSE", "MouseSensitivityLowerLimit");
47 | MouseSensitivityUpperLimit = lwmf::ReadINIValue(INIFile, "MOUSE", "MouseSensitivityUpperLimit");
48 | MouseSensitivityStep = lwmf::ReadINIValue(INIFile, "MOUSE", "MouseSensitivityStep");
49 |
50 | MouseSensitivity = lwmf::ReadINIValue(INIFile, "MOUSE", "MouseSensitivity");
51 | Tools_ErrorHandling::CheckAndClampRange(MouseSensitivity, MouseSensitivityLowerLimit, MouseSensitivityUpperLimit, __FILENAME__, "MouseSensitivity");
52 |
53 | // Load MouseIcon
54 | const lwmf::TextureStruct TempMouseIconTexture{ GFX_ImageHandling::ImportImage(lwmf::ReadINIValue(INIFile, "MOUSE", "MouseIcon")) };
55 | MouseIconShader.LoadShader("Default", Canvas);
56 | MouseIconShader.LoadStaticTextureInGPU(TempMouseIconTexture, &MouseIconShader.OGLTextureID, Canvas.Width - 153, 0, TempMouseIconTexture.Width, TempMouseIconTexture.Height);
57 |
58 | lwmf::RegisterRawInputDevice(lwmf::MainWindow, lwmf::DeviceIdentifier::HID_MOUSE);
59 | ShowCursor(FALSE);
60 | }
61 | }
62 |
63 | inline void ChangeMouseSensitivity(const char Change)
64 | {
65 | if (Change == '+')
66 | {
67 | MouseSensitivity += MouseSensitivityStep;
68 | }
69 | else if (Change == '-')
70 | {
71 | MouseSensitivity -= MouseSensitivityStep;
72 | }
73 |
74 | Tools_ErrorHandling::CheckAndClampRange(MouseSensitivity, MouseSensitivityLowerLimit, MouseSensitivityUpperLimit, __FILENAME__, "MouseSensitivity");
75 | }
76 |
77 |
78 | } // namespace HID_Mouse
--------------------------------------------------------------------------------
/Sources/Game_Config.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | ******************************************
3 | * *
4 | * Game_Config.hpp *
5 | * *
6 | * (c) 2017 - 2020 Stefan Kubsch *
7 | ******************************************
8 | */
9 |
10 | #pragma once
11 |
12 | #include
13 | #include
14 | #include