Alibek Omarov
6 years ago
1 changed files with 53 additions and 0 deletions
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
# Contributing to Xash3D FWGS |
||||
|
||||
Third-party patches for Xash3D FWGS are great idea. |
||||
But if you want your patch to be accepted, we can give you few guidelines. |
||||
|
||||
## If you are reporting bugs |
||||
|
||||
1. Check you are using latest version. You can build latest Xash3D FWGS for yourself, look to README.md. |
||||
2. Check open issues is your bug is already reported and closed issues if it reported and fixed. Don't send bug if it's already reported. |
||||
3. Now you can write bugreport. |
||||
4. Describe steps to reproduce bug. |
||||
5. Describe which OS and architecture you are using. |
||||
6. Re-run engine with `-dev 2 -log` arguments, reproduce bug and post engine.log which can be found in your working directory. |
||||
7. Attach screenshot if it will help clarify the situation. |
||||
|
||||
## If you are contributing code |
||||
|
||||
### Which branch? |
||||
|
||||
* We recommend using `master` branch. But you still can use any of our branches, if they are up-to-date. |
||||
|
||||
### Third-party libraries |
||||
|
||||
* Philosophy of any Xash Project by Uncle Mike: don't be bloated. We follow it too. |
||||
* There is allowed only these libraries, which is used in Linux GoldSrc version or if there is a REAL reason to use library. |
||||
|
||||
### Portability level |
||||
|
||||
* Xash3D have it's own crt library. It's recommended to use it. It most cases it's just a wrappers around standart C library. |
||||
* If your feature need platform-specific code, try to implement to every supported OS and every supported compiler. |
||||
* You must put it under appopriate macro. It's a rule: Xash3D FWGS must at least compile everywhere. |
||||
|
||||
| OS | Macro | |
||||
| -- | ----- | |
||||
| Linux | `defined(__linux__)` | |
||||
| FreeBSD | `defined(__FreeBSD__)` | |
||||
| NetBSD | `defined(__NetBSD__)` | |
||||
| OpenBSD | `defined(__OpenBSD__)` | |
||||
| OS X/iOS | `defined(__APPLE__)` and TargetConditionals macros | |
||||
| Windows | `defined(_WIN32)` | |
||||
| Android | `defined(__ANDROID__)` | |
||||
| Emscripten | `defined(__EMSCRIPTEN__)` | |
||||
|
||||
### Code style |
||||
|
||||
* This project uses mixed Quake's and HLSDK's C/C++ code style convention. |
||||
* In short: |
||||
* Use spaces in parenthesis. Even in empty. |
||||
* Use tabs, not spaces, for indentation. |
||||
* Any brace must have it's own line. |
||||
* Short blocks, if statements and loops on single line are allowed. |
||||
* Try to avoid magic numbers. |
||||
* If you unsure, try to mimic code style from anywhere else of engine source code. |
Loading…
Reference in new issue