diff options
Diffstat (limited to '')
-rw-r--r-- | README.md | 22 | ||||
-rw-r--r-- | premake5.lua | 19 | ||||
-rw-r--r-- | src/rw/rw.cpp | 40 |
3 files changed, 19 insertions, 62 deletions
@@ -1,8 +1,8 @@ # re3 [![Build status](https://ci.appveyor.com/api/projects/status/hyiwgegks122h8jg?svg=true)](https://ci.appveyor.com/project/aap/re3/branch/master) <a href="https://discord.gg/jYpXxTm"><img src="https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord&longCache=true&style=flat" /></a> -<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Debug/re3.dll?branch=master&job=Configuration%3A+Debug"><img src="https://img.shields.io/badge/download-debug-9cf.svg" /></a> -<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Release/re3.dll?branch=master&job=Configuration%3A+Release"><img src="https://img.shields.io/badge/download-release-blue.svg" /></a> +<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Debug/re3.exe?branch=master&job=Configuration%3A+Debug"><img src="https://img.shields.io/badge/download-debug-9cf.svg" /></a> +<a href="https://ci.appveyor.com/api/projects/aap/re3/artifacts/bin/Release/re3.exe?branch=master&job=Configuration%3A+Release"><img src="https://img.shields.io/badge/download-release-blue.svg" /></a> ## Intro @@ -12,23 +12,18 @@ such that we have a working game at all times. ## How can I try it? -- re3 requires game assets to work, so you need to own a copy of GTA III. -- Since re3 is a DLL that works with original GTA III for now, you need Simple DLL Loader. You can get it [here](https://github.com/aap/simpledllloader). +- re3 requires game assets to work, so you **must** own a copy of GTA III. - Build re3 or download it from one of the above links (Debug or Release). -- Make sure you included the re3 in `plugins.cfg` or `dlls.cfg`. +- (Optional) If you want to use optional features like Russian language or menu map, copy the files in /gamefiles folder to your game root folder. +- Move re3.exe to GTA 3 directory and run it. -![#ffa500](https://placehold.it/15/ffa500/000000?text=+) **Notice if you will build it** +> :information_source: **Rendering engine** re3 uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw. -There are various settings at the very bottom of `config.h`, you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across. +> :warning: **Notice for builders** There are various settings at the very bottom of `config.h`, you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across. https://github.com/GTAmodding/re3/tree/master/src/core/config.h -## I want to contribute, where should I start? - -A good approach is to start at the fringes of the code base, -i.e. classes that don't depend on code that we don't have reversed yet. -If a function uses only few unreversed functions that would be inconvenient -to reverse at the time, calling the original functions is acceptable. +## Contributing ### Unreversed / incomplete classes (at least the ones we know) The following classes have only unused or practically unused code left: @@ -150,4 +145,5 @@ Here you can find a list of variables that you might need to set in windows: ``` "GTA_III_RE_DIR" * path to "gta3_re" game folder usually where this plugin run. "GTA_III_DIR" * path to "GTAIII" game folder. +"LIBRW" * path to LIBRW. ``` diff --git a/premake5.lua b/premake5.lua index 586996f8..c427211a 100644 --- a/premake5.lua +++ b/premake5.lua @@ -1,4 +1,4 @@ -Librw = os.getenv("LIBRW") +Librw = os.getenv("LIBRW") or "librw" workspace "re3" configurations { "Debug", "Release", "ReleaseFH", "DebugRW", "ReleaseRW" } @@ -54,9 +54,8 @@ workspace "re3" filter "configurations:Debug or Release" files { "src/fakerw/*.*" } includedirs { "src/fakerw" } - includedirs { "librw" } - includedirs { "librw/src" } - libdirs { path.join("librw", "lib/win-x86-d3d9/%{cfg.buildcfg}") } + includedirs { Librw } + libdirs { path.join(Librw, "lib/win-x86-d3d9/%{cfg.buildcfg}") } links { "rw", "d3d9" } filter {} @@ -107,31 +106,33 @@ project "re3" defines { "DEBUG", "LIBRW", "RW_D3D9" } staticruntime "off" symbols "Full" - setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "") + setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "") filter "configurations:Release" defines { "NDEBUG", "LIBRW", "RW_D3D9" } optimize "On" staticruntime "off" symbols "Full" - setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "") + setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "") filter "configurations:ReleaseFH" defines { "NDEBUG" } symbols "Full" optimize "off" staticruntime "on" - setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "") + setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "") filter "configurations:DebugRW" defines { "DEBUG" } staticruntime "on" symbols "On" - setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "") + setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "") + linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text" filter "configurations:ReleaseRW" defines { "NDEBUG" } optimize "On" staticruntime "on" - setpaths("$(GTA_III_RE_DIR)/", "re3.exe", "") + setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "") + linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text" diff --git a/src/rw/rw.cpp b/src/rw/rw.cpp deleted file mode 100644 index 09cd246e..00000000 --- a/src/rw/rw.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef LIBRW -#include "common.h" - -#include "rwcore.h" -#include "rpworld.h" -#include "rpmatfx.h" -#include "rpskin.h" -#include "rphanim.h" -#include "rtbmp.h" - -typedef RwV3d *(*rwVectorsMultFn) (RwV3d * pointsOut, - const RwV3d * pointsIn, - RwInt32 numPoints, - const RwMatrix * matrix); - -#ifndef RWLIBS - -#else - -extern "C" -{ - void* _rwFrameOpen(void* instance, RwInt32 offset, RwInt32 size); - void* _rwFrameClose(void* instance, RwInt32 offset, RwInt32 size); - RwFrame* _rwFrameCloneAndLinkClones(RwFrame* root); - RwFrame* _rwFramePurgeClone(RwFrame* root); - RwBool RwFrameDirty(RwFrame const* frame); - void _rwFrameInit(RwFrame* frame); - RwBool _rwMatrixSetMultFn(rwMatrixMultFn multMat); - void* _rwMatrixClose(void* instance, RwInt32 offset, RwInt32 size); - void* _rwMatrixOpen(void* instance, RwInt32 offset, RwInt32 size); - RwBool _rwVectorSetMultFn(rwVectorMultFn multPoint, rwVectorsMultFn multPoints, rwVectorMultFn multVector, rwVectorsMultFn multVectors); - void* _rwVectorClose(void* instance, RwInt32 offset, RwInt32 size); - void* _rwVectorOpen(void* instance, RwInt32 offset, RwInt32 size); - RwBool _rwPluginRegistryOpen(); - RwBool _rwPluginRegistryClose(); - - RwInt32 _rwD3D8FindCorrectRasterFormat(RwRasterType type, RwInt32 flags); -} -#endif -#endif
\ No newline at end of file |