mirror of
https://github.com/rehlds/metamod-r-game-tests.git
synced 2025-04-21 22:03:36 +03:00
Compare commits
49 Commits
Author | SHA1 | Date | |
---|---|---|---|
4ad7f7d1d0 | |||
e28f8fe789 | |||
2b791da08c | |||
30268f7b8f | |||
677cd97cac | |||
a1d9e3f9ab | |||
6e7ddc928b | |||
b9cf9ca9e6 | |||
52f0a0a1fd | |||
7d2ad6275a | |||
e5c38d08e3 | |||
73171aea68 | |||
d73ba0abd7 | |||
98595b3898 | |||
4a5978f744 | |||
e5acbf8c4e | |||
a647eb3251 | |||
37169582d3 | |||
d45f7e2bb1 | |||
f504908023 | |||
5ce10ac12e | |||
347aa1e2a9 | |||
6c30b28599 | |||
3c1127a6e6 | |||
b30d5a1f72 | |||
a8d3fa0067 | |||
36164db5e9 | |||
0c297617c0 | |||
e80c67db5d | |||
6ac649032e | |||
b663cf0209 | |||
6a803a80b0 | |||
fb8940454c | |||
9ce464f59b | |||
7e1e536b7f | |||
3d144a0b3c | |||
4cfcd0832f | |||
|
3c6e6c94e6 | ||
0191a0af70 | |||
0a9a6447b4 | |||
79a5d25832 | |||
b46029a483 | |||
e1d10e4971 | |||
7d3cc5cc6a | |||
9b38d20a54 | |||
7b8a4113da | |||
1ae29cfbc1 | |||
082ca48183 | |||
1f2b377731 |
146
README.md
146
README.md
@ -8,135 +8,55 @@ We are ([STAM](https://github.com/stamepicmorg) and [AurZum](https://github.com/
|
||||
|
||||
and we are merged it to one big cleanuped and actualized list. Why not?
|
||||
|
||||
Now we are checking mods to compablity with [reHLDS](https://github.com/dreamstalker/rehlds) and [Metamod-r](https://github.com/theAsmodai/metamod-r):
|
||||
* we are cleaned list of available games. deleted old won-games. 'cause rehlds works only on steam-version -> metamod-r too, against original metamod.
|
||||
* we are compilled last version metamod-r with our game-list.
|
||||
* we are checked all mods with compablity.
|
||||
Now we are checking mods to compablity with [ReHLDS](https://github.com/dreamstalker/ReHLDS) and [Metamod-r](https://github.com/theAsmodai/metamod-r):
|
||||
|
||||
* we are cleaned list of available games. deleted old won-games. 'cause ReHLDS works only on steam-version -> metamod-r too, against original metamod.
|
||||
* we are compilled last version [](http://teamcity.rehlds.org/guestAuth/downloadArtifacts.html?buildTypeId=Metamod_Publish&buildId=lastSuccessful) metamod-r with our game-list.
|
||||
* we are checked all mods with compablity.
|
||||
|
||||
Some rare mods are uploaded at: https://github.com/EpicMorgGames/LegacyMods
|
||||
|
||||
|
||||
|
||||
If all be ok we will pull this list to awesome metamod-r.
|
||||
|
||||
# To do
|
||||
|
||||
1. test all games\mods on windows
|
||||
2. test all games\mods on linux (if available)
|
||||
1. test again all games\mods on windows
|
||||
2. test again all games\mods on linux (if available)
|
||||
3. keep some windows-servers. for fun. why not?
|
||||
4. Check out actual servers list [here](https://github.com/EpicMorgGames/OurGameServerList).
|
||||
|
||||
# already preTested games
|
||||
# Official suppoted games:
|
||||
See wiki pages: [ru](https://github.com/EpicMorgGames/metamod-r-game-tests/wiki/Поддерживаемые-игры) or [en](https://github.com/EpicMorgGames/metamod-r-game-tests/wiki/Supported-games)
|
||||
|
||||
:x: - unsuccess :heavy_check_mark: - success :interrobang: - need testing
|
||||
# To be tested (other 3rd party mods)
|
||||
|
||||
| Game | Engine | Metamod | Windows | Linux | SteamPipe | Comment
|
||||
| ------------- |---------------| ------| ------| ------| ------|------|
|
||||
| [Counter-Strike 1.6](http://store.steampowered.com/app/10/CounterStrike/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Recommended to use [reGameDll_CS](https://github.com/s1lentq/ReGameDLL_CS)
|
||||
| [Half-Life](http://store.steampowered.com/app/70/HalfLife/) + [Bugfixed and improved](http://aghl.ru/forum/viewtopic.php?f=32&t=686) [HL release](http://aghl.ru/files/patches/BugfixedHL/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :heavy_check_mark: | :interrobang: | :heavy_check_mark: | Added support after 1.3.76 version
|
||||
| [Adrenaline Gamer](http://www.moddb.com/mods/adrenaline-gamer/downloads/) + [openAG](https://github.com/YaLTeR/OpenAG)| [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Half-Life: Blue Shift](http://store.steampowered.com/app/130/HalfLife_Blue_Shift/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Counter-Strike:Condition Zero](http://store.steampowered.com/app/80/CounterStrike_Condition_Zero/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Counter-Strike:Condition Zero Deleted Scenes](http://store.steampowered.com/app/80/CounterStrike_Condition_Zero/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Deathmatch Classic](http://store.steampowered.com/app/40/Deathmatch_Classic/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Day of Defeat](http://store.steampowered.com/app/30/Day_of_Defeat/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Earth's Special Forces](http://www.moddb.com/mods/earths-special-forces/downloads) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark: | Linux-server's binaries placed in not-dll folder
|
||||
| [Opposing Force](http://store.steampowered.com/app/50/HalfLife_Opposing_Force/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Natural Selection](https://unknownworlds.com/ns/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Natural Selection Beta](https://unknownworlds.com/ns/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Ricochet](http://store.steampowered.com/app/60/Ricochet/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Team Fortress Classic](http://store.steampowered.com/app/20/Team_Fortress_Classic/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [The Specialists](http://www.moddb.com/mods/the-specialists/downloads) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
:x: - unsuccess :heavy_check_mark: - success :interrobang: - need testing :anger: - not shure
|
||||
|
||||
-----------------------------------
|
||||
| Game | Engine | Metamod | Windows | Linux | SteamPipe| Comment
|
||||
| ------------- |---------------| ------| ------| ------| ------| ------|
|
||||
| - | - | - | - | - | - | - |
|
||||
|
||||
# To be tested
|
||||
You can add issue or PR with asking us to test some other mods.
|
||||
|
||||
# Outdated mods. WON-versions or versions wich disappeared from internet
|
||||
|
||||
:x: - unsuccess :heavy_check_mark: - success :interrobang: - need testing
|
||||
|
||||
| Game | Engine | Metamod | Windows | Linux | SteamPipe| Comment
|
||||
| ------------- |---------------| ------| ------| ------| ------| ------|
|
||||
| [Action Half-Life](http://www.moddb.com/mods/action-half-life/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Adrenalinegamer 3.x](http://planethalflife.gamespy.com/View75d9.html?view=HLFiles.Detail&id=1929) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version
|
||||
| Adrenalinegamer 4.x | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version. Cant find in the internet. lol
|
||||
| [Arg!](https://www.fileplanet.com/50432/download/Arg!-The-Pirates-Strike-Back) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| [Azure Sheep](http://www.moddb.com/mods/azure-sheep/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Base Defense](http://www.moddb.com/mods/b-def/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark: | Server's binaries placed in not-dll folder
|
||||
| Bot * | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version. Cant find in the internet. lol
|
||||
| [Brain Bread](http://www.moddb.com/mods/brainbread/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Brutal Half-Life](http://www.moddb.com/mods/brutal-half-life/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :x: | :heavy_check_mark: | Have no linux binary. Check it.
|
||||
| [Bumper Cars](http://www.moddb.com/mods/bumper-cars/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [BuzzyBots](http://www.moddb.com/mods/buzzybots/downloads) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Chicken Fortress 3](http://www.moddb.com/mods/chicken-fortress-3/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :x: | :heavy_check_mark: | Have no linux binary. Check it.
|
||||
| Counter-Strike 1.3 (WON) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| Counter-Strike 1.4 (WON) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| Counter-Strike 1.5 (WON) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| Counter-Strike 1.5 (Steam) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| Desert Crisis | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Digital Paintball | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Dragon Mod Z | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Existence | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Firearms | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Freeze | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Frontline Force | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| [Gangsta Wars (Steam)](http://www.moddb.com/mods/gangsta-wars/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| Gangwars | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Global Warfare | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Goldeneye | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Gunman Chronicles | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| [Half-Life 1.5: Weapon Edition](http://www.moddb.com/mods/half-life-weapon-edition/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Half-Life: Decay](http://www.moddb.com/mods/half-life-decay/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :heavy_check_mark: | :x: | :heavy_check_mark: | Have no linux binary. 100%.
|
||||
| Headcrab Frenzy | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang: |
|
||||
| HL-Rally | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Holy Wars | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Hostile Intent | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| International Online Soccer | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Judgement | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Kanonball | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Master Sword Continued | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :x: | :interrobang: | Have no linux binary. Check it.
|
||||
| Monkeystrike | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Morbid Inclination | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Move In! | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| OeL Half-Life | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Open-Source Jailbreak | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :x: | :interrobang: | Have no linux binary. Check it.
|
||||
| Operations 1942 | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Out Break | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :x: | :interrobang: | Have no linux binary. Check it.
|
||||
| Outlawsmod | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Over Ground | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Oz Deathmatch | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Paintball | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Phineas Bot | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Pirates, Vikings and Knights | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Point of No Return | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Project Timeless | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Public Enemy | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Resident Evil : Cold Blood | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Retro Counter-Strike | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Retro Firearms | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Rival Species | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| [Rocket Crowbar](http://hldm.org/files/mods/287-rocket-crowbar.html) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Rocket Crowbar 2](http://www.moddb.com/mods/rocket-crowbar-2/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| Science & Industry | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Scientist Hunt | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Snow-War | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Special Death Match | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| [StargateTC](http://www.moddb.com/mods/stargatetc/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| Sven Coop | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark: |
|
||||
| Swarm | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang: |
|
||||
| The Battle Grounds | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang: |
|
||||
| The Ship | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang: |
|
||||
| The Terrorist Revenge | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| The Trenches | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| The Wastes | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Tour of Duty | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Train Hunters | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Underworld Bloodline | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| VampireSlayer | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Wanted! | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Wasteland | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| Weapon Wars | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :interrobang:
|
||||
| [Wizard Wars Beta](http://www.moddb.com/mods/wizard-wars/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Wizard Wars](http://www.moddb.com/mods/wizard-wars/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [WormsHL](http://www.moddb.com/mods/wormshl/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| [Zombie Panic](http://www.moddb.com/mods/zombie-panic/downloads/) | [reHLDS](https://github.com/dreamstalker/rehlds) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :interrobang: | :interrobang: | :heavy_check_mark:
|
||||
| ~[Adrenalinegamer 3.x](http://planethalflife.gamespy.com/View75d9.html?view=HLFiles.Detail&id=1929)~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version
|
||||
| ~Adrenalinegamer 4.x~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version. Cant find in the internet. lol
|
||||
| ~[Arg!](https://www.fileplanet.com/50432/download/Arg!-The-Pirates-Strike-Back)~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version. Cant find in the internet. lol
|
||||
| ~Bot~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version. Cant find in the internet. lol
|
||||
| ~[Counter-Strike 1.3](http://www.moddb.com/downloads/counter-strike-13)~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| ~[Counter-Strike 1.4](http://www.moddb.com/mods/counter-strike/downloads/counter-strike-14)~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| ~[Counter-Strike 1.5](http://www.moddb.com/mods/counter-strike/downloads/counter-strike-15)~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| ~[Dragon Mod Z](http://www.moddb.com/mods/dragonmod-z/downloads/)~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | 1.7 - Old outdated won-version. Classic - custom steam build with other mod-folder. In comments - project is continued by ESF-mod.
|
||||
| ~Freeze~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version. Cant find in the internet. lol
|
||||
| ~OeL Half-Life~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| ~Phineas Bot~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| ~Retro Counter-Strike~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Cant find in the internet. lol
|
||||
| ~Retro Firearms~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Cant find in the internet. lol
|
||||
| ~Special Death Match~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Cant find in the internet. lol
|
||||
| ~[The Terrorist Revenge](http://www.moddb.com/mods/terrorist-revenge/downloads/)~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Old outdated won-version.
|
||||
| ~Wasteland~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Cant find in the internet. lol
|
||||
| ~Weapon Wars~ | [ReHLDS](https://github.com/dreamstalker/ReHLDS) | [Metamod-r](https://github.com/theAsmodai/metamod-r) | :x: | :x: | :x: | Cant find in the internet. lol
|
||||
|
@ -1,3 +1,5 @@
|
||||
#include "precompiled.h"
|
||||
|
||||
// Adapted from adminmod h_export.cpp:
|
||||
//! this structure contains a list of supported mods and their dlls names
|
||||
//! To add support for another mod add an entry here, and add all the
|
||||
@ -8,44 +10,37 @@ const game_modinfo_t g_known_games[] = {
|
||||
// Previously enumerated in this sourcefile, the list is now kept in a
|
||||
// separate file, generated based on game information stored in a
|
||||
// convenient db.
|
||||
{ "action", "ahl.so", "ahl.dll", "Action Half-Life" },
|
||||
{ "ag", "ag.so", "ag.dll", "Adrenaline Gamer" },
|
||||
{ "ag3", "hl.so", "hl.dll", "Adrenalinegamer 3.x" },
|
||||
{ "aghl", "ag.so", "ag.dll", "Adrenalinegamer 4.x" },
|
||||
{ "arg", "arg.so", "hl.dll", "Arg!" },
|
||||
{ "asheep", "hl.so", "hl.dll", "Azure Sheep" },
|
||||
{ "bdef", "../cl_dlls/server.so", "../cl_dlls/server.dll", "Base Defense" }, //workaround
|
||||
{ "action", "ahl.so", "ahl.dll", "Action Half-Life" }, // _i386.so, + director's cut [2016], updated linux binary name
|
||||
{ "ag", "ag.so", "ag.dll", "Adrenaline Gamer" }, // .so file by OpenAG fork
|
||||
{ "asheep", nullptr, "hl.dll", "Azure Sheep" }, // have no linux binary found!
|
||||
{ "bdef", "server.so", "server.dll", "Base Defense" }, // placed in normal dll folder [2017]
|
||||
{ "bg", "bg.so", "bg.dll", "The Battle Grounds" },
|
||||
{ "bhl", nullptr, "bhl.dll", "Brutal Half-Life" }, //have no linux binary!
|
||||
{ "bot", "bot.so", "bot.dll", "Bot" },
|
||||
{ "brainbread", "bb.so", "bb.dll", "Brain Bread" },
|
||||
{ "bhl", nullptr, "bhl.dll", "Brutal Half-Life" }, // have no linux binary found!
|
||||
{ "brainbread", nullptr, "bb.dll", "Brain Bread" }, // have no linux binary found!
|
||||
{ "bshift", "bshift.so", "hl.dll", "Half-Life: Blue Shift" },
|
||||
{ "bumpercars", "hl.so", "hl.dll", "Bumper Cars" },
|
||||
{ "buzzybots", "bb.so", "bb.dll", "BuzzyBots" },
|
||||
{ "ckf3", nullptr, "mp.dll", "Chicken Fortress 3" }, //have no linux binary!
|
||||
{ "cs13", "cs.so", "mp.dll", "Counter-Strike 1.3" },
|
||||
{ "cstrike", "cs.so", "mp.dll", "Counter-Strike" },
|
||||
{ "csv15", "cs.so", "mp.dll", "Counter-Strike 1.5 (Steam)" },
|
||||
{ "bumpercars", nullptr, "hl.dll", "Bumper Cars" }, // have no linux binary found!
|
||||
{ "buzzybots", nullptr, "bb.dll", "BuzzyBots" }, // have no linux binary found!
|
||||
{ "ckf3", nullptr, "mp.dll", "Chicken Fortress 3" }, // have no linux binary found!, checked all versions (latest - Alpha 4)
|
||||
{ "cs10", nullptr, "mp.dll", "Counter-Strike 1.0" }, // have no linux binary found!
|
||||
{ "csv15", nullptr, "mp.dll", "Counter-Strike 1.5" }, // have no linux binary found!
|
||||
{ "cstrike", "cs.so", "mp.dll", "Counter-Strike 1.6" },
|
||||
{ "czero", "cs.so", "mp.dll", "Counter-Strike:Condition Zero" },
|
||||
{ "czeror", "cz.so", "cz.dll", "Counter-Strike:Condition Zero Deleted Scenes" },
|
||||
{ "dcrisis", "dc.so", "dc.dll", "Desert Crisis" },
|
||||
{ "decay", nullptr, "decay.dll", "Half-Life: Decay" },
|
||||
{ "dcrisis", "dc.so", "dc.dll", "Desert Crisis" }, // _i386.so, updated linux binary name [2010]
|
||||
{ "decay", nullptr, "decay.dll", "Half-Life: Decay" }, // have no linux binary!
|
||||
{ "dmc", "dmc.so", "dmc.dll", "Deathmatch Classic" },
|
||||
{ "dod", "dod.so", "dod.dll", "Day of Defeat" },
|
||||
{ "dpb", "pb.i386.so", "pb.dll", "Digital Paintball" },
|
||||
{ "dragonmodz", "hl.so", "mp.dll", "Dragon Mod Z" },
|
||||
{ "esf", "../linuxdll/hl_i386.so", "hl.dll", "Earth's Special Forces (Steam)" }, //workaround
|
||||
{ "esf", "hl.so", "hl.dll", "Earth's Special Forces (Old)" },
|
||||
{ "existence", "ex.so", "existence.dll", "Existence" },
|
||||
{ "firearms", "fa.so", "firearms.dll", "Firearms" },
|
||||
{ "firearms25", "fa.so", "firearms.dll", "Retro Firearms" },
|
||||
{ "freeze", "mp.so", "mp.dll", "Freeze" },
|
||||
{ "frontline", "front.so", "frontline.dll", "Frontline Force" },
|
||||
{ "gangstawars", "gangsta.so", "gwars27.dll", "Gangsta Wars (Steam)" },
|
||||
{ "gangwars", "mp.so", "mp.dll", "Gangwars" },
|
||||
{ "dpb", "pb.i386.so", "pb.dll", "Digital Paintball" }, // ...
|
||||
{ "esf", "../linuxdll/hl.so", "hl.dll", "Earth's Special Forces (old)" }, // _i386.so, workaround for basic-linux version
|
||||
{ "esf", "hl.so", "hl.dll", "Earth's Special Forces" }, // _i386.so, full linux version
|
||||
{ "existence", nullptr, "existence.dll", "Existence" }, // have no linux binary found!
|
||||
{ "firearms", nullptr, "firearms.dll", "Firearms" }, // have no linux binary found!
|
||||
{ "frontline", "front.so", "frontline.dll", "Frontline Force" }, // _i386.so, updated linux binary name [2012]
|
||||
{ "gangstawars", nullptr, "gwars27.dll", "Gangsta Wars" }, // have no linux binary found!
|
||||
{ "gangwars", nullptr, "mp.dll", "Gangwars" }, // have no linux binary found!
|
||||
{ "gearbox", "opfor.so", "opfor.dll", "Opposing Force" },
|
||||
{ "globalwarfare", "gw.so", "mp.dll", "Global Warfare" },
|
||||
{ "goldeneye", "golden.so", "mp.dll", "Goldeneye" },
|
||||
{ "globalwarfare", "gw.so", "mp.dll", "Global Warfare" }, // _i386.so, updated linux binary name [2012]
|
||||
{ "goldeneye", nullptr, "mp.dll", "Goldeneye" }, // have no linux binary found!
|
||||
{ "hcfrenzy", "hcfrenzy.so", "hcfrenzy.dll", "Headcrab Frenzy" },
|
||||
{ "hl15we", "hl.so", "hl.dll", "Half-Life 1.5: Weapon Edition" },
|
||||
{ "hlrally", "hlr.so", "hlrally.dll", "HL-Rally" },
|
||||
@ -60,35 +55,29 @@ const game_modinfo_t g_known_games[] = {
|
||||
{ "msc", nullptr, "ms.dll", "Master Sword Continued" },
|
||||
{ "ns", "ns.so", "ns.dll", "Natural Selection" },
|
||||
{ "nsp", "ns.so", "ns.dll", "Natural Selection Beta" },
|
||||
{ "oel", "hl.so", "hl.dll", "OeL Half-Life" },
|
||||
{ "og", "og.so", "og.dll", "Over Ground" },
|
||||
{ "ol", "ol.so", "hl.dll", "Outlawsmod" },
|
||||
{ "ops1942", "spirit.so", "spirit.dll", "Operations 1942" },
|
||||
{ "osjb", "osjb.so", "jail.dll", "Open-Source Jailbreak" },
|
||||
{ "outbreak", nullptr, "hl.dll", "Out Break" }, //have no linux binary
|
||||
{ "outbreak", nullptr, "hl.dll", "Out Break" }, // have no linux binary found!
|
||||
{ "oz", "mp.so", "mp.dll", "Oz Deathmatch" },
|
||||
{ "paintball", "pb.so", "mp.dll", "Paintball" },
|
||||
{ "penemy", "pe.so", "pe.dll", "Public Enemy" },
|
||||
{ "phineas", "phineas.so", "phineas.dll", "Phineas Bot" },
|
||||
{ "ponreturn", "ponr.so", "mp.dll", "Point of No Return" },
|
||||
{ "pvk", "hl.so", "hl.dll", "Pirates, Vikings and Knights" },
|
||||
{ "rc2", "rc2.so", "rc2.dll", "Rocket Crowbar 2" },
|
||||
{ "recbb2", "recb.so", "recb.dll", "Resident Evil : Cold Blood" },
|
||||
{ "retrocs", "rcs.so", "rcs.dll", "Retro Counter-Strike" },
|
||||
{ "rewolf", "hl.so", "gunman.dll", "Gunman Chronicles" },
|
||||
{ "rewolf", nullptr, "gunman.dll", "Gunman Chronicles" }, // have no linux binary found!
|
||||
{ "ricochet", "ricochet.so", "mp.dll", "Ricochet" },
|
||||
{ "rockcrowbar", "rc.so", "rc.dll", "Rocket Crowbar" },
|
||||
{ "rockcrowbar", "rc_i386.so", "rc.dll", "Rocket Crowbar" },
|
||||
{ "rockcrowbar", "rc.so", "rc.dll", "Rocket Crowbar" }, // + _i386.so
|
||||
{ "rspecies", "hl.so", "hl.dll", "Rival Species" },
|
||||
{ "scihunt", "shunt.so", "shunt.dll", "Scientist Hunt" },
|
||||
{ "sdm", "sdmmod.so", "sdmmod.dll", "Special Death Match" },
|
||||
{ "sdmmod", "sdmmod.so", "sdmmod.dll", "Special Death Match" },
|
||||
{ "ship", "ship.so", "ship.dll", "The Ship" },
|
||||
{ "si", "si.so", "si.dll", "Science & Industry" },
|
||||
{ "snow", "snow.so", "snow.dll", "Snow-War" },
|
||||
{ "stargatetc", "hl.so", "hl.dll", "StargateTC (Old, 1.x)" },
|
||||
{ "stargatetc", "stc_i386.so", "hl.dll", "StargateTC (Updated, 2.x)" },
|
||||
{ "stargatetc", "stc_i386_opt.so", "hl.dll", "StargateTC (Updated, 2.x)" },
|
||||
{ "stargatetc", "stc.so", "hl.dll", "StargateTC (Updated, 2.x)" }, // _i386.so
|
||||
{ "stargatetc", "stc_i386_opt.so", "hl.dll", "StargateTC (Updated, 2.x)" }, // ...
|
||||
{ "svencoop", "hl.so", "hl.dll", "Sven Coop (Old)" },
|
||||
{ "svencoop", "server.so", "server.dll", "Sven Coop (Steam)" },
|
||||
{ "swarm", "swarm.so", "swarm.dll", "Swarm" },
|
||||
@ -97,24 +86,205 @@ const game_modinfo_t g_known_games[] = {
|
||||
{ "timeless", "pt.so", "timeless.dll", "Project Timeless" },
|
||||
{ "tod", "hl.so", "hl.dll", "Tour of Duty" },
|
||||
{ "trainhunters", "th.so", "th.dll", "Train Hunters" },
|
||||
{ "trevenge", "trevenge.so", "trevenge.dll", "The Terrorist Revenge" },
|
||||
{ "ts", "ts_i686.so", "mp.dll", "The Specialists" },
|
||||
{ "ts", "ts_i386.so", "mp.dll", "The Specialists" },
|
||||
{ "ts", "ts.so", "mp.dll", "The Specialists" }, //_i686.so, _i386.so
|
||||
{ "tt", "tt.so", "tt.dll", "The Trenches" },
|
||||
{ "underworld", "uw.so", "uw.dll", "Underworld Bloodline" },
|
||||
{ "valve", "hl.so", "hl.dll", "Half-Life" },
|
||||
{ "vs", "vs.so", "mp.dll", "VampireSlayer" },
|
||||
{ "wantedhl", "hl.so", "wanted.dll", "Wanted!" },
|
||||
{ "wasteland", "whl_linux.so", "mp.dll", "Wasteland" },
|
||||
{ "weapon_wars", "ww.so", "hl.dll", "Weapon Wars" },
|
||||
{ "wizardwars", "wizardwars_i486.so", "wizardwars.dll", "Wizard Wars (Steam)" },
|
||||
{ "wizardwars_beta", "wizardwars_i486.so", "wizardwars.dll", "Wizard Wars Beta (Steam)" },
|
||||
{ "wizardwars", "wizardwars.so", "wizardwars.dll", "Wizard Wars (Steam)" },
|
||||
{ "wizardwars_beta", "wizardwars.so", "wizardwars.dll", "Wizard Wars Beta (Steam)" }, // folder's name is not same as original. not duplicate
|
||||
{ "wizwars", "mp.so", "hl.dll", "Wizard Wars (Old)" },
|
||||
{ "wormshl", "wormshl_i586.so", "wormshl.dll", "WormsHL (Old)" },
|
||||
{ "wormshl", "wormshl_i686.so", "wormshl.dll", "WormsHL (Steam)" },
|
||||
{ "zp", "hl_i386.so", "mp.dll", "Zombie Panic" },
|
||||
{ "wormshl", "wormshl.so", "wormshl.dll", "WormsHL" }, // _i586.so old, _i686.so steam
|
||||
{ "zp", "hl.so", "mp.dll", "Zombie Panic" }, // _i386.so
|
||||
|
||||
|
||||
// End of list terminator:
|
||||
{ nullptr, nullptr, nullptr, nullptr }
|
||||
};
|
||||
|
||||
// Find a modinfo corresponding to the given game name.
|
||||
static const game_modinfo_t *lookup_game(const char *name)
|
||||
{
|
||||
for (auto& known : g_known_games) {
|
||||
if (known.name && !Q_stricmp(known.name, name))
|
||||
return &known;
|
||||
}
|
||||
|
||||
// no match found
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool lookup_game_postfixes(gamedll_t *gamedll)
|
||||
{
|
||||
char pathname[MAX_PATH];
|
||||
static char postfix_path[MAX_PATH] = "";
|
||||
|
||||
Q_strlcpy(pathname, gamedll->pathname);
|
||||
|
||||
// find extensions and skip
|
||||
char *pos = Q_strrchr(pathname, '.');
|
||||
if (pos) {
|
||||
*pos = '\0';
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < arraysize(g_platform_postfixes); i++)
|
||||
{
|
||||
postfix_path[0] = '\0';
|
||||
Q_strlcat(postfix_path, pathname);
|
||||
Q_strlcat(postfix_path, g_platform_postfixes[i]);
|
||||
|
||||
if (is_file_exists_in_gamedir(postfix_path)) {
|
||||
Q_strlcpy(gamedll->pathname, postfix_path);
|
||||
Q_strlcpy(gamedll->real_pathname, postfix_path);
|
||||
gamedll->file = postfix_path;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Installs gamedll from Steam cache
|
||||
bool install_gamedll(char *from, const char *to)
|
||||
{
|
||||
if (!from)
|
||||
return false;
|
||||
|
||||
if (!to)
|
||||
to = from;
|
||||
|
||||
int length_in;
|
||||
byte *cachefile = LOAD_FILE_FOR_ME(from, &length_in);
|
||||
|
||||
// If the file seems to exist in the cache.
|
||||
if (cachefile) {
|
||||
int fd = open(to, O_WRONLY | O_CREAT | O_EXCL | O_BINARY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||
if (fd < 0) {
|
||||
META_DEBUG(3, "Installing gamedll from cache: Failed to create file %s: %s", to, strerror(errno));
|
||||
FREE_FILE(cachefile);
|
||||
return false;
|
||||
}
|
||||
|
||||
int length_out = write(fd, cachefile, length_in);
|
||||
FREE_FILE(cachefile);
|
||||
close(fd);
|
||||
|
||||
// Writing the file was not successfull
|
||||
if (length_out != length_in) {
|
||||
META_DEBUG(3, "Installing gamedll from chache: Failed to write all %d bytes to file, only %d written: %s", length_in, length_out, strerror(errno));
|
||||
|
||||
// Let's not leave a mess but clean up nicely.
|
||||
if (length_out >= 0)
|
||||
_unlink(to);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
META_LOG("Installed gamedll %s from cache.", to);
|
||||
}
|
||||
else {
|
||||
META_DEBUG(3, "Failed to install gamedll from cache: file %s not found in cache.", from);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Set all the fields in the gamedll struct, - based either on an entry in
|
||||
// known_games matching the current gamedir, or on one specified manually
|
||||
// by the server admin.
|
||||
//
|
||||
// meta_errno values:
|
||||
// - ME_NOTFOUND couldn't recognize game
|
||||
bool setup_gamedll(gamedll_t *gamedll)
|
||||
{
|
||||
bool override = false;
|
||||
const game_modinfo_t *known;
|
||||
const char *knownfn = nullptr;
|
||||
|
||||
// First, look for a known game, based on gamedir.
|
||||
if ((known = lookup_game(gamedll->name))) {
|
||||
#ifdef _WIN32
|
||||
knownfn = known->win_dll;
|
||||
#else
|
||||
knownfn = known->linux_so;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Neither override nor known-list found a gamedll.
|
||||
if (!known && !g_config->m_gamedll)
|
||||
return false;
|
||||
|
||||
// Use override-dll if specified.
|
||||
if (g_config->m_gamedll) {
|
||||
Q_strlcpy(gamedll->pathname, g_config->m_gamedll);
|
||||
|
||||
// If the path is relative, the gamedll file will be missing and
|
||||
// it might be found in the cache file.
|
||||
if (!is_abs_path(gamedll->pathname)) {
|
||||
char szInstallPath[MAX_PATH];
|
||||
Q_snprintf(szInstallPath, sizeof(szInstallPath), "%s/%s", gamedll->gamedir, gamedll->pathname);
|
||||
|
||||
// If we could successfully install the gamedll from the cache we
|
||||
// rectify the pathname to be a full pathname.
|
||||
if (install_gamedll(gamedll->pathname, szInstallPath)) {
|
||||
Q_strlcpy(gamedll->pathname, szInstallPath);
|
||||
}
|
||||
}
|
||||
|
||||
override = true;
|
||||
}
|
||||
// Else use Known-list dll.
|
||||
else if (known) {
|
||||
Q_snprintf(gamedll->pathname, sizeof(gamedll->pathname), "%s/dlls/%s", gamedll->gamedir, knownfn);
|
||||
}
|
||||
else {
|
||||
// Neither override nor known-list found a gamedll.
|
||||
return false;
|
||||
}
|
||||
|
||||
// get filename from pathname
|
||||
char *cp = Q_strrchr(gamedll->pathname, '/');
|
||||
if (cp)
|
||||
cp++;
|
||||
else
|
||||
cp = gamedll->pathname;
|
||||
|
||||
gamedll->file = cp;
|
||||
|
||||
// If found, store also the supposed "real" dll path based on the
|
||||
// gamedir, in case it differs from the "override" dll path.
|
||||
if (known && override) {
|
||||
Q_snprintf(gamedll->real_pathname, sizeof(gamedll->real_pathname), "%s/dlls/%s", gamedll->gamedir, knownfn);
|
||||
}
|
||||
else {
|
||||
Q_strlcpy(gamedll->real_pathname, gamedll->pathname);
|
||||
}
|
||||
|
||||
if (override) {
|
||||
// generate a desc
|
||||
Q_snprintf(gamedll->desc, sizeof(gamedll->desc), "%s (override)", gamedll->file);
|
||||
|
||||
// log result
|
||||
META_LOG("Overriding game '%s' with dllfile '%s'", gamedll->name, gamedll->file);
|
||||
}
|
||||
else if (known) {
|
||||
Q_strlcpy(gamedll->desc, known->desc);
|
||||
|
||||
#if !defined(_WIN32)
|
||||
if (!is_file_exists_in_gamedir(gamedll->pathname))
|
||||
{
|
||||
// trying lookup gamedll with postfixes ie _i386.so
|
||||
if (lookup_game_postfixes(gamedll)) {
|
||||
META_DEBUG(3, "dll: Trying lookup to gamedll with postfixes was a success. Game '%s'", gamedll->pathname);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
META_LOG("Recognized game '%s'; using dllfile '%s'", gamedll->name, gamedll->file);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user