Coding info

From Multi Theft Auto: Wiki
Jump to navigation Jump to search

Introduction

This page has information which would be useful for anyone who is doing coding for MTA SA.

Projects explained

  • Client - Core: Typically UI elements like main menu etc and isn't ever unloaded.
  • Client - Deathmatch: Where MTA makes all it's functions and events do stuff.
  • Client - Game SA: Low level stuff which is mainly function calls to the game so each element will have a game_sa class like Vehicle, Ped, Object etc.
  • Client - GUI: It's just wrappers to CEGUI, you need not touch.
  • Client - Launch: Is the MTA executable which loads loader, you need not touch.
  • Client - Loader: You need not touch the loader either.
  • Client - Multiplayer SA: Hooks, code modification and that sort of low level things that lets us work.
  • Server - Core: Cazomino05: "I genuinely don't really know why we have server core."
  • Server - Dbconmy: Stuff to do with the db* functions, you need not touch.
  • Server - Deathmatch: All the server logic and storage classes for elements as well as Lua stuff.
  • Server - Launcher: Just an executable to load all the DLLs we need.
  • Shared - XML Module: XML module is just tinyxml and some high level wrapper functions for stuff we need.

Simplification of data types

MTA has some type definitions you can use (Can be found in Shared/sdk/SharedUtil.h)

  • ulong = unsigned long
  • uint = unsigned int
  • ushort = unsigned short
  • uchar = unsigned char
  • uint64 = unsigned long long
  • uint32 = unsigned int
  • uint16 = unsigned short
  • uint8 = unsigned char
  • int64 = signed long long
  • int32 = signed int
  • int16 = signed short
  • int8 = signed char
  • BYTE = unsigned char
  • WORD = unsigned short
  • DWORD = unsigned long
  • FLOAT = float