Skip to content
This repository has been archived by the owner on Sep 19, 2023. It is now read-only.

Contributing

decryller edited this page Aug 28, 2023 · 1 revision

Contributing to Wraith

I really appreciate everyone who is interested in contributing to this.
The easiest way you can contribute to this project is spreading the word about it, it has the same effect as Media contributing.
If you want to go a step further, here are some other ways you can contribute:

Media contributing

Uploading a video showcasing Wraith will really help the project, since it could potentially attract:

  • Contributors: People who are interested in collaborating to the client's code, documentation, version support, and more.
  • Users: People who use the client and are likely to submit bug reports / suggest new features / create Media content.

Code contributing

I will gladly merge all well-intended pull requests.
Any pull request that modifies a file that is not main.cpp will be rejected.

Code refactoring

You are welcome to refactor code as long as it doesn't meet the code styling rules, this will make the project look more clean, consistent, and organized.

Code styling

  1. Variable naming.

    1. For regular variables, use lower camel case
    2. For temporal or "misc" variables that are visible from most of the current block's scope, use upper camel case and prefix the variable with at least one underscore.
      int __NULLINT;
      unsigned int __NULLUINT;
      unsigned long __NULLULONG;
      std::vector<memoryPage> _STARTUPPROCESSPAGES;
  2. Brackets

    1. Don't use brackets for if one-liners.
      if (condition)
      	theFunction();
      
    2. Don't dedicate a whole line to an opening curly bracket.
      if (condition)
      { // not this
      }
      // ===
      if (condition) { // but this
      }
  3. Enums

    1. Don't create enum classes.
    2. Enums must not be declared with an underscore, capitalization does not matter.
    3. Enum members must be named like: {enum name}_{upper member name}.
      // Example of an enum that follows these rules.
      enum GUIPages {
      	GUIPages_COMBAT,
      	GUIPages_MISC,
      	GUIPages_SETTINGS,
      };
  4. Performance and Readability.

    1. Creating booleans to improve readability is allowed, specially if the condition is checked multiple times.
      const bool useDoubleReach =
      clientType_CURRENT == clientType_LUNAR1 ||
      clientType_CURRENT == clientType_FORGE1;
    2. Ternary if statements are allowed as long as they aren't hard to read.
    3. I appreciate the use of smaller data types and "unsigned" when possible.
  5. Comments

    1. Add comments if the code is not explicit enough about what's happening.

Monetary contributing

I am not interested in money at all and won't ask for any unless my keyboard / monitor / mouse / pc stop working. I appreciate the sentiment though <3

Clone this wiki locally