diff --git a/README.md b/README.md
index 540a8861..45bed219 100644
--- a/README.md
+++ b/README.md
@@ -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)
-
-
+
+
## 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