Fixes.inc

fixes.inc

Description:
Include fixes.inc...


Introduction

SA:MP is beta software written by a small team in their spare time, thus it has bugs (as does all software). Some of these have been known for a long time but are low priority due to their minor effects, others go undiscovered for a long time. Many of these bugs have solutions which can be implemented in PAWN (and this may be simpler than implementing them in the SA:MP source code). This include aims to collect fixes for as many of these bugs as possible from the community (i.e. anyone who has a fix) together in to one easy to use place for everyone's benefit.

Download

Current stable version: Download

Use

To use this, simply include it after the default SA:MP functions, but before third party includes:

#include <a_samp>
// Any default re-definitions should go here.
//#undef MAX_PLAYERS
//#define MAX_PLAYERS 10
#include <fixes>
#include <other>

To disable any fix for whatever reason simply do:

#define FIX_<name> 0

For example, to disable all the file.inc fixes if you always correctly check the file handle, do:

#include <a_samp>
#define FIX_file_inc 0
#include <fixes>
#include <other>

All the names of the fixes are single words, and are all listed with their fix descriptions below.

If you only have one script running on your server (i.e. no Filter Scripts), you can use this define to improve the fixes.inc code:

#include <a_samp>
#define FIXES_Single 1
#include <fixes>
#include <other>

Fixes

Expansion

The file is fairly well documented, with a list of the currently (hopefully) fixed bugs at the top. If you know of others, or have solutions for others, it would be greatly appreciated if you could post them in this topic (following the structure already laid out). The fixes also need extensive testing to find bugs in the fixes.

Again, this is a community project, merely managed by Y_Less - it anyone has comments, contributions, criticisms etc. please post them in this topic. This includes additions to source code, documentation, presentation, translations (mainly of this post - multiple versions of the include should be avoided to reduce fragmentation), or any other related area you can think of.

Translations

Note that these are only samp forum topic translations - the source is always the same. Please also post any additions in the original English topic as otherwise they may not be seen and added.

Other Fixes

There are a few other includes which aim to fix issues too large to be included here: SQLitei - Slice's fixes and improvements for many SQLite functions Timer Fix - Slice's fixes to make "SetTimer" and "SetTimerEx" vastly more accurate in their delays.

Bugs

Y_Less said: [This] is beta software written by a small team in their spare time, thus it has bugs (as does all software). This software is explicitly designed to solve bugs, not cause them, but there may still be bugs. The most likely cause of bugs is certain combinations of disabled fixes. Some fixes are inter-mixed and while they SHOULD work when the fixes they are combined with are disabled, not every combination has been tested.