Crop non-team hats without “real” animation to static format (32×32)
This …
a) makes these hats more managable
b) Fixes some clipping problems with hats which take the full height
(e.g. knight, noface)
b) reduces file size
This has been done semi-automated with the following steps:
1. Carefully select hats manually and write them in a list file
2. Run a script to crop them to 32×32 using ImageMagick
3. Check ALL the converted hats in Hedgewars
4. Discard hat changes which turn out to be bad
5. Manually convert any non-RGBA images back to RGBA
6. Final check
7. Commit
redo;
{This file contains functions that are re-implemented}
{pas2c will add prefix fpcrtl_ to all these functions}
type
uinteger = uinteger;
Integer = integer;
LongInt = integer;
LongWord = uinteger;
Cardinal = uinteger;
PtrInt = integer;
SizeInt = PtrInt;
Word = uinteger;
Byte = integer;
SmallInt = integer;
ShortInt = integer;
Int64 = integer;
QWord = uinteger;
GLint = integer;
GLuint = integer;
int = integer;
size_t = integer;
pointer = pointer;
float = float;
single = float;
double = float;
real = float;
extended = float;
GLfloat = float;
boolean = boolean;
LongBool = boolean;
string = string;
shortstring = string;
ansistring = string;
widechar = string;
char = char;
PChar = ^char;
PPChar = ^Pchar;
PByte = ^Byte;
PLongInt = ^LongInt;
PLongWord = ^LongWord;
PInteger = ^Integer;
Handle = integer;
var
write, writeLn, read, readLn, flush, CreateDir: procedure;
halt:procedure;
GetEnumName:function:shortstring;
TypeInfo:function:Integer;
lo:function:Integer;
init:procedure;
StrLen:function : integer;
odd, even : function : boolean;
Length : function : integer;
Now : function : integer;
new, dispose, FillChar, Insert, Delete, Move : procedure;
trunc, round, ceil : function : integer;
abs, sqr : function : integer;
StrPas, FormatDateTime, copy, str, PosS, LowerCase : function : shortstring;
pos : function : integer;
StrToInt : function : integer;
SetLength, SetLengthA, val, StrDispose, StrCopy : procedure;
_pchar, _pcharA, StrAlloc : function : PChar;
pchar2str, astr2str : function : string;
pchar2astr, str2astr : function : ansistring;
memcpy : procedure;
StrLength : function : integer;
min, max:function:integer;
assign, rewrite, rewrite_2, reset, reset_2, flush, BlockWrite, BlockRead, close : procedure;
FileExists, DirectoryExists, eof : function : boolean;
ParamCount : function : integer;
ParamStr : function : string;
arctan2, power: function : float;
//TypeInfo, GetEnumName : function : shortstring;
UTF8ToUnicode, WrapText: function : shortstring;
GetMem : function : pointer;
FreeMem : procedure;
BeginThread, ThreadSwitch : procedure;
InterlockedIncrement, InterlockedDecrement : procedure;
random : function : integer;
randomize : procedure;
Assigned : function : boolean;
//EnumToStr : function : string;
initParams : procedure;
Load_GL_VERSION_2_0 : procedure;
GetCurrentDir : function : PChar;