Dokumentace pro všechny soubory

Typy | Konstanty | Proměnné | Funkce

Typy (19)

JménoDefiniceDokumentace
SOCKETintna unixu je socket vlastne jen int ....
bfloatfloatvsude se pouzije float
byteunsigned char8 bitovy unsigned typ
clientstruct _clientskutecna deklarace o kus dal
dwordunsigned int32 bitovy unsigned typ
gl3bGLbyte [3]pole 3 bytu
gl3fbfloat [3]pole 3 bfloatu
gl4bGLbyte [4]pole 4 bytu
gl4fbfloat [4]pole 4 bfloatu
gl4fcolorGLfloat [4]pole 4 GLfloatu (barev)
int16short16bitovy integer
int64__int6464bitovy integer
ip_addrunsigned intIPv4 adresa, s IPv6 to nefunguje (ale to ostatne malo veci)
ip_addressuintpouze IPv4, s IPv6 to nefunguje (ale to ostatne malo veci)
ip_portshortIPv4 port
object3dstruct _object3dskutecna deklarace o kus dal
ucharunsigned char8 bitovy unsigned typ
uintunsigned int32 bitovy unsigned typ
uint_16unsigned short16bitovy unsigned typ

Konstanty (140)

JménoHodnotaDokumentace
AI_API__declspec(dllimport)specifikace naimportovani funkci z DLL
AI_CREATEobject3d *selfhlavicka create funkce, vola se pri objeveni objektu
AI_CREATEobject3d *selfhlavicka create funkce, vola se pri objeveni objektu
AI_DAMAGEobject3d *self,bfloat damage,damage_type damtype,vector offset, object3d *attackerhlavicka damage funkce, (damage, typ damage, vektor odkud damage prisel (relativni vzhledem k pozici))
AI_DAMAGEobject3d *self,bfloat damage,damage_type damtype,vector offset, object3d *attackerhlavicka damage funkce, (damage, typ damage, vektor odkud damage prisel (relativni vzhledem k pozici))
AI_DESTROYobject3d *selfhlavicka destroy funkce, vola se pri zniceni objektu
AI_DESTROYobject3d *selfhlavicka destroy funkce, vola se pri zniceni objektu
AI_TIMERobject3d *self, int alive_time, int timehlavicka move funkce, vola se pred kazdym pohybem, parametrem je cas od vytvoreni objektu a cas od posledniho zavolani
AI_TIMERobject3d *self, int alive_time, int timehlavicka move funkce, vola se pred kazdym pohybem, parametrem je cas od vytvoreni objektu a cas od posledniho zavolani
AI_TOUCHobject3d *self,vector touch_point,vector touch_slide, vector touch_push,object3d *targethlavicka touch funkce, vola se pred kolizi, dostane jako parametry bod kolize, vektor slide a vektor prurazu a dotknuty objekt
AI_TOUCHobject3d *self,vector touch_point,vector touch_slide, vector touch_push,object3d *targethlavicka touch funkce, vola se pred kolizi, dostane jako parametry bod kolize, vektor slide a vektor prurazu a dotknuty objekt
BUILDNUMBER"1432"Current build number
BUILDTIME"12.09.2003 17:43:56"Date of current build
CASESENSITIVITY(2)jestli jsou zip archivy case sensitive
DEFAULT_PORT27080defaultni port, na kterem hra pobezi
EYE_PLANE0x855CGL_NV_FOG_DISTANCE konstanta
EYE_PLANE_ABSOLUTE_NV0x855CGL_NV_FOG_DISTANCE konstanta
EYE_RADIAL_NV0x855BGL_NV_FOG_DISTANCE konstanta
FILEBUF_LEN(32*1024)size of file output buffer
FOG_DISTANCE_MODE_NV0x855AGL_NV_FOG_DISTANCE konstanta
GLUT_MOUSE10000konstanta pricitana k n
HOSTENTstruct hostenthostent je definovan jinak
ICON_BOMB"\x03"ikonka bomby
ICON_DEATH"\x02"ikonka lebky
ICON_HEALTH"\x01"tomuto ascii kodu odpovida ikonka zdravi
INVALID_SOCKET-1chybovy kod pro neplatny socket (unix)
MAX_CONTACTS43 by mozna stacily (dam 3 kdyz to bude pomaly)
METHODDEF_booleanMETHODDEF(boolean)boolean (jpeglib)
METHODDEF_voidMETHODDEF(void)void (jpeglib)
PACKET_GAMEID'SB'id hry
PACKET_VERSION1verze paketu (komunikacniho protokolu)
SOCKET_ERROR-1chybovy kod pro chybu socketu (unix)
STR_HEAD1o kolik je retezec delsi v pameti nez kolik ma znaku
WORLD_ID((int)('B4DW'))prvni 4 byty (identifikator) souboru s mapou (vnitrni format b4d)
_gcvtgcvtv linuxu je jiny nazev funkce nez ve windows
_inline___inlinedefinice inline funkce (kterou lze optimalizovat jako inline)
_snprintfsnprintfv linuxu je jiny nazev funkce nez ve windows
_vsnprintfvsnprintfv linuxu je jiny nazev funkce nez ve windows
advanced_menu_size(elements(advanced_menu_command))pocet advanced prikazu nastavitelnych v menu
air_fade0.95frychlost zpomalovani - ve vzduchu
air_fade0.95frychlost zpomalovani - ve vzduchu
apptitle"Scorch Blaster 3D"titulek okna
cdecl__cdecldefinice volani C-konvenci
cdecl_intcdecl intdefinice volani C-konvenci s navratem void
cdecl_voidcdecl voiddefinice volani C-konvenci s navratem void
class_setdo nothing, pri konverzi map se konstruktor nevola
closesocketclosev unixech staci dat obyc. close na socket
con_printfprintfmisto vystupu na konszolim vystup na STDOUT
console_avg_width80ocekavana velikost radku (tohle * pocet radku=velikost bufferu)
console_avg_width80ocekavana velikost radku (tohle * pocet radku=velikost bufferu)
console_lines1024pocet radek v konzoli
console_lines1024pocet radek v konzoli
console_max_cmd512maximalni delka prikazu v konzoli
console_max_cmd512maximalni delka prikazu v konzoli
console_max_mline4096maximalni delka radky najednou vypsane na konzoli (pozor, alokuje se na stacku, byt jen max. jednou)
console_max_mline4096maximalni delka radky najednou vypsane na konzoli (pozor, alokuje se na stacku, byt jen max. jednou)
datadir"data"adresar s daty
debug_brushfaces_to_model1if (eqi("common/clip",face[i].t->name)) alpha=0;\UNDOCUMENTED!
debug_printf0debugovaci vystup nizsi urovne - vypnut
debug_printfpri vypnutem debuggingu se nic nevypisuje
default_alias_file"alias.cfg"defaultni soubor s aliasy
default_config_file"config.cfg"defaultni soubor s konfiguraci
default_maxobj128maximalni ocekavany pocet objektu ve hre (je-li jich vice, provede se realloc).
default_screens_max16;defaultni maximalni pocet obrazovak. Lze ve hre realokovat na vyssi pocet
delta0.0002tolerance chyby (relativne vzhledem k "merene velicine")
error_printfcon_printfmuze byt i fatalf, to pak sleti hned a nebude to jenom varovat
false0false
findclose_findclosealias
findfirst_findfirstalias
findnext_findnextalias
finf9.9e35fspecialni konstanta znacici "velmi velky float" (nekonecno)
fs2'\\'alternativni filesystem separator
fs'/'nativni filesystem separator
getcwd_getcwdalias
glColor3xglColor3falias na funkci s pouzitim float
glColor4xglColor4falias na funkci s pouzitim float
glRotatexglRotatefalias na funkci s pouzitim double
glScalexglScalefalias na funkci s pouzitim float
glTexCoord2xglTexCoord2falias na funkci s pouzitim float
glTranslatexglTranslatefalias na funkci s pouzitim float
glVertex3xglVertex3falias na funkci s pouzitim float
glerrdo nothing //[PASS]
ground_fade0.8frychlost zpomalovani - na zemi
ground_fade0.8frychlost zpomalovani - na zemi
have_soundjestli mame zvuk nebo ne
inf0x7fff0000specialni konstanta znacici "nejvetsi int" (nekonecno). 0x7fffffff nemuze byt, protoze se musi vejit do floatu a byt < MAXINT
introtext1"Scorch Blaster 3D version " version1.radka textu co se objevi pri spusteni hry
introtext2"(c) 2002,2003 by Martin 'Bilbo' Petricek"2.radka
introtext3"Email: "3.radka
introtext4"WWW: http:www.volny.cz/petricm" //4.radka
mapscale1.0(1.0/64.0) //prevod ze souradnic mapy do souradnic nasich (architektura)
max_delta0.3333maximalni pripustna odchylka
max_funcname_length16maximalni delka nazvu funkce na kterou lze priradit klavesu
max_keyname_length10maximalni delka nazvu klavesy
max_keys_on_action4maximalni pocet klaves na jednu akci nabindovatelnych v menu (na konzoli lze nabindovat neomezeny pocet)
maxcolors9maximalni pocet ruznych barev pro krychle v generate_stock3d
maxtick0.2nejdelsi doba mezi framy v sekundach (Min 5 FPS)
menu_active_b128barva aktivniho menu
menu_active_g255barva aktivniho menu
menu_active_r255barva aktivniho menu
menu_alpha160transparence menu (0-255)
menu_font_alpha255transparence fontu v menu (0-255)
menu_inactive_b0barva neaktivniho menu
menu_inactive_g64barva neaktivniho menu
menu_inactive_r192barva neaktivniho menu
menuborder_x1.5horizontalni okraj menu (v pismenkach)
menuborder_y1.5vertikalni okraj menu (v pismenkach)
min_delta0.0002odchylka tak mala, ze se bere hned
min_servertick40minimalni pocet msec mezi posilanim updatu (aby se nzahltila sit nadbytecnymi pakety, pokud by se spustil server na prilis rychlem pocitaci)
mintick0.001nejkratsi doba mezi framy v sekundach (Max 1000 FPS)
move_firstmove_fwdprvni z konstant pohybu
move_lastscoreboardposledni z konstant pohybu
move_stop(move_speed/40.0f)zastavovaci rychlost
normal_scale0.25pokud je zaple debug_normal, tak urcije jak velke normaly budou zobrazeny
num_weapons2pocet zbrani
outofmem"Out of memory: cannot allocate %i bytes "hlaska co bude hozena pri nedostatku pameti
person_height_down0.5fbounding box - vyska postavy od oci dolu
person_height_up0.1fbounding box - vyska postavy od oci nahoru
person_width0.3fbounding box - sirka postavy
pi3.1415926535897932386426433konstanta pi
precision_doublepokud je definovano, tak se pouzije vsude double, jinak float
roll_speed(0.18f/100.0f)rychlost otaceni kolem vlastni osy
security_checkprazdne makro, cili je to zatim vypnuto
stat_statve windows se jmenuje funkce jinak
stricmpstrcasecmpv linuxu je jiny nazev funkce nez ve windows
strnicmpstrncasecmpv linuxu je jiny nazev funkce nez ve windows
t00155tmavy odstin barvy v generate_stock3d (0..255)
t05205stredni odstin barvy v generate_stock3d (0..255)
t10255svetly odstin barvy v generate_stock3d (0..255)
true1true
tscale20scale textury v krajine (kolikanasobne zvetseni) pri generate_2d
turn_speed(-0.18f/100.0f)rychlost otaceni
vdebugzapne debugging na konzoli
version"0.3.1 build " BUILDNUMBER " (" BUILDTIME ")"verze enginu
vertex2vector2jiny nazev pro vector2
vertexvectorjiny nazev pro vector
vidmode"640x480:32@60"defaultni videomod u fullscreen zobrazeni
wall_height0.5fpolovina vysky zdi (vzhledem k podlaze) v generate_3d
xmax(1-xmin)maximalni sourdnice textury (viz xmin)
xmin(1/512.0)minimalni souradnice textury. Aby byl skybox spojity, melo by to byt asi pul pixelu od okraje

Proměnné (418)

JménoTypPočáteční hodnotaDokumentace
*score_names*char?nacachovany score array;
_statxchar[40]?buffer na formatovane datum (btime)
abfloat[3]?pole slozek vektoru
abfloat?pozice na prvni primce
aunsigned char[3]?RGB
abox*aa_bbox?non-null pokud ma jinou axis-aligned bounding box
actobject_netque_action?co je to za typ informace
actionint?akce ke ktere to patri
actionint?bud jednoducha akce, pokud je -1, tak se spusti command
activeint?1 je-li konzole aktivni a pise se na ni
activemenuactive_menu?aktivni menu (na obrazovce) [EXT]
activetabint?aktivni zalozka v menu
aftercommand*char?co se spusti po konci intermise
ai*aifunc[ai_max]?Vsechny funkce objektu
ai_levelint?uroven umele inteligence (skill)
ai_tree*tree?strom s objekt funkcemi [EXT]
alias_tree*tree?Strom obsahujici aliasy [EXT]
alocobjint?kapacita alokovaneho pole objektu. Typicky se nebudou prilis menit.
alphabyte?prusvitnost spritu
ambientGLfloat[4]?GL_AMBIENT
b3d_winint?GLUT handle okna [EXT]
bbfloat?pozice na druhe primce
b_handlekeyint01 pokud se prave zpracovava nejaka klavesa (tedy jsme v handleru)
begin*char?zacatek
bench_timeint?zacatek mereni casu (milisekund)
bind0*binding?spojak s bindy - prirazeni klavesy na urcitou akci [EXT]
bind9*binding?spojak s bindy - prirazeni klavesy na urcitou akci [EXT]
bind_applykeys*properties?ulozene klice, po zmacknuti Ok se aplikuji
bind_caption_sizeuint?delka maximalne dlouheho popisku (ve znacich)
bindmenu_page_sizebfloat5velikost stranky v bindmenu
bodydBodyID?ODE body ID (moment setrvacnosti, hmotnost, rotace, posun, atd ....)
bomb_throw_speedbfloat70rychlost, se kterou jsou bomby hazeny
bomb_throwup_anglebfloat0uhel, pod kterym jsou vyhazovany bomby (oproti uhlu pohledu)
botclient_bot?bot (umela inteligence)
bouncebfloat?bounce prevzate z class
bppchar?bits per pixel
bppchar?bits per pixel
bufchar[FILEBUF_LEN]?buffer
bufchar[console_avg_width*console_lines]?kruhovy bufer na znaky v console scrollback bufferu
bufferALuint?OpenAL sound buffer
buffer*unsigned char?muj buffer v pameti
bytesint?bytes in buffer
ccollision_struct?struktura urcena hlavne pro pocitani kolizi (ODE)
c*client?hrac ve hre
call_listint?call list (0=nepouzit)
call_polysint?kolik to ma polygonu (kvuli statistice)
camclient_camera?kamera
caption*char?popisek zalozky
charsint?pocet znaku a radek v scrollback bufferu
chat_lenint?pocet zprav v chatkonzoli [EXT]
chat_max_lenint3pocet zprav (vyska chatwindow) [EXT]
chat_timeoutint3000timeout v milisekundach [EXT]
chatc0*net_chat_console?prvni zanzam v chatkonzoli
chatc9*net_chat_console?posledni zaznam v chatkonzoli
childobjectlist?podrazene objekty - (napr. k panacovi bude takto pripojena jeho zbran)
class_tree*tree?strom s nahranymi classami [EXT]
classname*char?classname objektu, ktery je pri vystrelu vypusten (projektil)
classname*char?jmeno tridy
client*client?pokud je objekt ovladan hracem, tak je zde struktura hrace, jinak null
clipbackbfloat3000far clip plane [EXT]
clipfrontbfloat4near clip plane [EXT]
cmd0*cmd_def?seznam prikazu/promennych
cmd9*cmd_def?seznam prikazu/promennych
cmdchar[console_max_cmd]?aktualni prave psany prikaz
cmd_autostart*char?prikaz spoustejici se pri startu (po nahrani configu) [EXT]
colmapchar[5]?lze ignorovat
colmapchar[5]?lze ignorovat
colorbyte[4]?barva textury (r,g,b,alpha)
colormapchar?lze ignorovat
colormapchar?lze ignorovat
command*char?odkaz na staticky retezec se jmenem comandu (pouzito pokud action je -1)
command*char?vyvolany prikaz
con*console_data?struktura na praci s konzoli (console buffer) [EXT]
con_alphabfloat0.5transparentnost konzole [EXT]
con_font_alphabfloat0.66transparentnost fontu v konzoli [EXT]
con_heightbfloat0.45vyska konzole [EXT]
con_hist0*console_history?historie prikazu
con_hist*console_history?historie prikazu
con_hist_maxint1000kapacita historie prikazu - je-li tam prikazu vic, ty starsi se zacnou mazat (kvuli uspore pameti [EXT]
con_hist_numint?kolik je tam prikazu
con_logint?logovani konzole do souboru - enable/disable [EXT]
con_logfile*char?logovani konzole do souboru - jmeno souboru [EXT]
con_plusint?jestli je na poslednim radku
con_widthint?aktualni sirka konzole na obrazovce(ve znacich) [EXT]
console_ofsint0od ktere radky oproti posledni zacina vykreslovani konzole [EXT]
controlint?controller ID (
controllerclient_controller?kdo hrace ovlada
coordbfloat[6*12]?souradnice pro skyboxy
copy_dint?1 pokud se ma na konci fyziky zkopirovat do d o kolik se to skutecne pohnulo
countint?pocet dat v zalozce
ctimeuint?cas vytvoreni (gettickcount)
curr*char?aktualni pozice
curr_millisuint?kolik milisekund se zobrazoval dany frame
current_skymap*char?jmeno aktualniho skyboxu [EXT]
dvector?vektor pohybu objektu, kterym se objekt chce pohybovat
dvector?direction (smernice primky)
dsinglevector?kam miri .... rychlost a smer
data*void?data - obsah zalozky
datachar[0]?data
dataunsigned char[1]?x*y*(bpp/8) bajtu
datalenint16?delka dat
deathsint?pocet smrti
deathsint?pocet smrti hrace
definition*char?textova, nerozparsovana definice objektu. Parsuje se az pri prvnim pouziti objektu, pak se zahodi
degeneratedint?=1 pokud se smrskne do 1 bodu (nebo do zadneho bodu)
destructor*vp_fn?funkce na odalokaci dat (NULL = zavolame obyc. free)
diffuseGLfloat[4]?GL_DIFFUSE
distancebfloat?vzdalenost od
downvector{0,0,-1}vektor "dolu" - kam pusobi standardne gravitace [EXT]
draw_fpsint1zobrazovani fps (0=off, 1=fps, 2=fps+poly, 3=detailed)
dxvector?smery tri hran z pocatku
dyvector?smery tri hran z pocatku
dzvector?smery tri hran z pocatku
emissionGLfloat[4]?GL_EMISSION
explosion_model*model3d?jakysi defaultni model na exploze [EXT]
f*FILE?file
fobject_features?specialni vlastnosti objektu. V jedne strukture jsou kvuli load/save
face*modelface?pocet vertexu, textura a barva pro kazdy face
facev*facecoord?ukazatel na faces, po skonceni jednoho zacina dalsi, cele se opakuje
fadebfloat?konstanta zpomalovani pohybu
failsafemodel*model3d?model pouzity pokud neni zadany model k dispozici (muze byt i NULL)
failsafetex*texture?defaultni textura [EXT]
fatal_loading_errorint?pokud je 0, vse je v poradku, jinak to znamena ze pri nahravani neceho (typicky mapy) doslo k chybe...[EXT]
fire_delayint?pauze mezi vystrely
fire_delayint?doba (v msec) nez bude moct znovu vystrelit
fire_timeuint?doba (gettickcount) kdy jsem naposled strilel
flagschar?nezajimava polozka
flagschar?nezajimava polozka
flymodeint0ignoruje fakt, ze neni na zemi [EXT]
fog_colorvector{0.5,0.5,1.0}barva mlhy
fog_distancebfloat3000hustota mlhy, cim vyssi cislo, tim ridsi
fontsizexbfloat12velikost fontu (nejen) v konzoli - x [EXT]
fontsizeybfloat16velikost fontu (nejen) v konzoli - y [EXT]
formatALenum?sound format - mono/stereo, 8/16 bits
fovbfloat90field of view [EXT]
fpschar[1280]?buffer na FPS a debugovaci informace [EXT]
fpsdatatype_fpsdata?Data pro FPS kalkulace [EXT]
fraglimitint10omezeni na pocet fragu - po nahrani tolika fragu hra konci
fragsint?pocet killu
fragsint?pocet fragu hrace
freemouseint01 pokud mys muze opustit okno (potom nefunguje korektne mouselook), 0 pokud nemuze
frequint?samplovaci frekvence
fs_pak*pakfile?zip soubory s daty
fullscreenint01 pokud hra bezi fullscreen, 0 pokud v okne
func*aifunc?funkce
func*aifunc?funkce
func*void?adresa funkce ci promenne
game_idint16?id hry - 'SB';
game_pausedint?1 pokud je pauznuta hra
geomdGeomID?ode geometry ID (typ geometrie (koule/krychle)+velikost)
gle_tree*tree?tree with supported gl extensions [EXT]
gravitybfloat0.3gravitace [EXT]
groundcontrolint1fyzikalni model pohybu (1=quake-like, 0=6 DOF) [EXT]
h_sensitivitybfloat0.01citlivost mysi - horizontalni
headvector?vektor pohledu dopredu, doleva a nahoru (jednotkovy, uziti hlavne u hracu)
headsinglevector?heading
headtgaheader?hlavicka tga souboru
healthbfloat?defaultni health objektu
healthbfloat?health objektu
hivector?horni roh (vetsi souradnice)
humanclient_human?clovek sedici u lokalni klavesnice/mysi
idint?id objektu (pro sitovou hru)
id*char?nazev menu
idbyteschar?0 je spravne, jinak-problem (na miste pixelu jsou navic jina odpadni data -> problem uzivatele)
idbyteschar?0 je spravne, jinak-problem (na miste pixelu jsou navic jina odpadni data -> problem uzivatele)
in1vector?vektor dovnitr prvni roviny
in2vector?vektor dovnitr druhe roviny
invector?vektor smerujici dovnitr poloroviny kterou primka (usecka) na facu vykusuje
infochar[1024]?buffer na debugovaci informace (r_fps>=2) [EXT]
intermis*intermission?aktualni intermission [EXT]
ipip_addr?ip odkud konexe prisla
is_destroyedint?1 pokud se objekt nachazi ve svem destruktoru, 2 pokud uz byl znicen, 0 jinak
is_physicalint?jsou objekty teto tridy fyzicke?
is_physicalint?1 pokud je fyzicky a aplikuje se na nej fyzika, 2 pokud je castecne fyzicky a na nej je aplikovana fyzika, ale ostatnim v kolizi nebrani
is_savedint?jestli se na konci ulozi do konfigurace
item_countint?item count for modellist,classlist ...
jgroupdJointGroupID?joint group (ODE)
jmjmp_buf?libjpeg mi nedava jinou moznost nez pouzit setjmp/longjmp
jmretint?navratovy kod setjmp/jongjmp
k*char?key
keyint?klavesa
keysint[max_keys_on_action]?klavesy prirazene (0=nic)
label*char?popis polozky menu
last_millisuint?doba zacatku zobrazovani posledniho framu
last_textureint?posledni pouzita textura [EXT]
last_tickint?kdy byla naposledy zavolana tick funkce (v milisekundach)
lastmaterial*material?posledni pouzity material
lastupdateint?kdy byl naposledy objekt zmenen
leftvector?vektor pohledu dopredu, doleva a nahoru (jednotkovy, uziti hlavne u hracu)
leftsinglevector?heading
leftint?kolik bajtu zbyva;
lenint?aktualni delka paketu
lenint?delka bufferu
lenint[console_lines]?kruhovy buffer s indexy zacatku a delkami radek v bufferu buf
levelcommand_protection?uroven ochrany - cheaty nelze zadavat v multiplayeru a ne vsichni mohou menit nastaveni serveru ....
lifetimeint?jak dlouho uz objekt existuje (milsekund);
line0int?prvni a posledni pouzita radka v linebuffer
line9int?prvni a posledni pouzita radka v linebuffer
linesint[console_lines]?kruhovy buffer s indexy zacatku a delkami radek v bufferu buf
lovector?dolni roh (mensi souradnice)
loopALboolean?looping
m*model3d?staticka architektura
manager*model?odkaz na infromace model manageru o tomhle modelu (reference count, atd..)
mass_infodMass?ODE mass info (moment setrvacnosti, hmotnost ...)
matl*matlist?seznam materialu modelu
matrixGLdouble[16]?transformacni matice ktera byla aktivni v momentu, kdy se ma sprite zobrazit
maxbfloat?minimalniu a maximalni hodnota promenne
maxfaceint?faces, v nich per_face
maxlenint?max. delka paketu -alokovana pamet
maxpointint?per_point data (1 face=3 a vice points)
maxvertint?vertexy (x,y,z)
maxxint?rozmery okna na vykreslovani (x=maxx a y=maxy) [EXT]
maxyint?rozmery okna na vykreslovani (x=maxx a y=maxy) [EXT]
mem*model3d?kde je v pameti
mem*void?zvukova data v pameti
mem*tgafile?kde je v pameti
mem_usagesize_t?memory usage for modellist,classlist ...
menu*menuitem?ukazatel na aktivni menu - jednoduche
menu*menuitem?pole s polozkami v menu, NULL terminated
menu_warning*char?varovani ktere se zobrazuje v menu (napr. ze klavesa byla prirazena jinde) NULL = zadne varovani
menulenint?pocet polozek menu
menuposint?pozice kurzoru v menu
menutabs*tabs?zalozky v menu - pripadne naalokovane (zero-terminated)
menuwidthint?sirka menu (ve znacich)
minbfloat?minimalniu a maximalni hodnota promenne
model*model3d?3d reprezentace, pokud je null, bere se type->model (napr. vsechny zbrane jsou stejne, ale func_elevator muze mit kazdy jiny model)
model_serialint?seriove cislo modelu v mape (aby slo referencovat v sitove hre) [EXT]
model_tree*tree?strom s nahranymi modely [EXT]
modelalphaint?alpha modelu (1-255)= alpha, 0 = vypnuto
modelscalevector?zmena velikosti modelu vuci defaultni ... 1=puvodni velikost
modelscalebfloat?zvetseni modelu. Pokud je 0, bere se jako 1
mousexint?souradnice mysiho kurzoru v okne
mouseyint?souradnice mysiho kurzoru v okne
movemaskvector?maska pohybu (co se bere z d a co povinne z nd
msg*char?zprava
msgs*char0buffer na zpravy
msys0*menusystem?system menu - ke kazdemu menu je prirazeno jmeno a menu jsou ve spojaku
msys9*menusystem?system menu - ke kazdemu menu je prirazeno jmeno a menu jsou ve spojaku
nint?cislo vertexu co se pouzije
name*char?jmeno zbrane (zobrazeno uzivateli)
name*char?jmeno
name*char?odkaz na staticky retezec se jmenem bindu
name*char?jeji jmeno
name*char?jmeno
ncoordint?pocet vertexu
ndvector?vektor pohybu objektu konecny (po pridani gravitace, aplikace kolizi ...)
net0pnet_con_list[num_socket_type]?konexe roztridene dle typu
net9pnet_con_list[num_socket_type]?konexe roztridene dle typu
net_countint[num_socket_type]?pocet spojeni daneho typu
net_obj*object_netque?objekty urcene k poslani pres sit
nfaceint?pocet faces
nfacevint?pocet polozek ve faces (cili pocet vertexu ve vsech facech)
nick*char?jmeno socketu (nickname)
nlinesint?pocet znaku a radek v scrollback bufferu
noclipint0ignoruje kolize [EXT]
normalvector?normala facu (pouziva se hlavne na kolize)
normalvector?normala roviny
now_tickint?kdy byla naposledy zavolana tick funkce (v milisekundach)
nplayersint?pocet hracu [EXT]
numint?nejvyssi zalozka (pocet zalozek)
numint?pocet prvku tohoto (pod)stromu
num_fpsuint?posledni hodnota FPS (nejaktualnejsi)
num_framesuint?pocet framu dobrazeny od doby zacatku mereni
num_jointsint?debugobvaci promenna, pocet jointu
num_millisuint?doba zacatku mereni (gettickcount)
num_playersint?pocet hracu
num_raysint?pocet primek v brushi
numfaceint?faces, v nich per_face
numobjint?pocet objektu. Ve hre se meni jen pomerne lehce v jistych mezich.
numpointint?per_point data (1 face=3 a vice points)
numvertint?vertexy (x,y,z)
nvertint?pocet vertexu
objobjectlist?pohyblive objekty ve svete
obj*object3d?zaroven i jeho ID
omousexint?souradnice mysiho kurzoru v okne minuly frame
omouseyint?souradnice mysiho kurzoru v okne minuly frame
open_v1int?jsou-li koncove body otevrene (pokracuji do nekonecna)
open_v2int?jsou-li koncove body otevrene (pokracuji do nekonecna)
orgvector?pocatek
orgxshort?pocatek obrazku, ignouje se
orgxshort?pocatek obrazku, ignouje se
orgyshort?pocatek obrazku, ignouje se
orgyshort?pocatek obrazku, ignouje se
p*client?hrac. Jeden hrac nebo kamera ...
pvector?smernice
pvector?bod pruniku
psinglevector?poloha
packet_codechar?typ paketu (viz packet_type)
packet_idint16?id paketu - seriove cislo paketu
packet_serialint160seriove cislo paketu - cas od casu pretece, ale s tim se pocita
packet_versionchar?verze paketu - na zacatku 1
pdtemp_physics?docasna data fyzikalniho modelu pro objekt. neukladaji se
phaseint?figl na urychleni renderingu - trochu ale blbne, defaultne disablovan
pingint?jeho ping time
pixelsizeint?velikost (sirka) tagu zalozky v pixelech
plr*players?spojak s hraci [EXT]
polysint?citac polygonu ve scene [EXT]
portip_port?port odkud konexe prisla
posvertex?pozice spritu
press_a_key_modeint?zdali to chce novou klavesu
prop*properties?odkaz na hash-table s properties
r_angle2bfloat?uhly pohledu (x,y,z)
r_angle3bfloat?uhly pohledu (x,y,z)
r_anglebfloat?uhly pohledu (x,y,z)
randseedunsigned int?seed of rtandom number generator
ray*brush_ray?primky
refint?pocet referenci na tenhle material. pokud je =0 tak se zlikviduje
refcountint?kolik objektu tohoto typu je ve hre
refcountint?kolikrat je pouzita. Pokud nula, lze ji odstranit
rotrotation?rotace objektu a jeji zmena (mozna sjednotit s predchozim radkem)
rotationbfloat?rotace textury
rotplusrotation?rotace objektu a jeji zmena (mozna sjednotit s predchozim radkem)
sSOCKET?socket prirazeny teto konexi
scale_xbfloat?meritko textury
scale_ybfloat?meritko textury
score_array*net_scoreboard_item?nacachovany score array;
score_array_lenint0alokovana velikost poli score_names a score_array
score_headnet_scoreboard_header?nacachovany score header;
score_names2*char0promenna na udrzeni jmen pro score
screenshot_serialunsigned int0seriove cislo screenshotu, postupne se zvysuje, tipajic obrazky s0.tga, s1.tga, atd ....
sensitivitybfloat1.0citlivost mysi - nasobek
shininessGLfloat?GL_SHININESS
silentint1pri 1 nevypisuje tolik hlasek na konzoli (X set to Y a tak ...) [EXT]
sizeuint?velikost dat (v bajtech)
smenu*setmenuitem?ukazatel na aktivni menu - nastavovaci
snd*ALuint?prave prehravane zvuky
snd_max_sourcesint0kapacita bufferu
snd_num_sourcesint0pocet zvuku v bufferu
snd_tree*tree?strom se zvuky [EXT]
snd_volumebfloat1hlasitost zvuku [EXT]
spacedSpaceID?space (ODE)
special_func*cmd_fn?adresa specianli funkce volane pri nastaveni promenne
specularGLfloat[4]?GL_SPECULAT
split_screen_numberint?cislo obrazovky pri splitsceenu
spritesint?pocet spritu v seznamu
sprites_maxint?maximalni pocet spritu (pokud by mel byt vyssi, pole se musi prealokovat)
st_det0int?statistiky pruniku primek (debug, optimalizace)
st_nint?statistiky pruniku primek (debug, optimalizace)
st_x0int?statistiky pruniku primek (debug, optimalizace)
st_y0int?statistiky pruniku primek (debug, optimalizace)
st_z0int?statistiky pruniku primek (debug, optimalizace)
start_tickuint?kdy intermise zacala
stateint?stav socketu (pred pripojenim/ve hre, atd ... zavisi na typu socketu)
styleint?typ kamery (chase, all field, ...)
survivalint0survival mode
switch_off_delayint?doba prepnuti na tuto zbran (doba nez se zbran vytahne)
switch_on_delayint?doba prepnuti z teto zbrane (doba nez se zbran schova)
t*material?material
t*texture?textura
tbfloat?pozice na primce
t*tab?definice jednotlivych zalozek
t*void?cosi
tunsigned char?alpha
tex*texture?pouzivana textura (muze byt null)
tex_console*texture?textura pro pozadi konzole [EXT]
tex_font*texture?textura pro font [EXT]
tex_memoryint?celkova pamet sezrana vsemi texturami [EXT]
tex_menuptexture[4]?textury v menu [EXT]
tex_skybox*texture[6]?skybox (6 textur) [EXT]
tex_tree*tree?strom s nahranymi texturami [EXT]
text*char?text intermise
thtgaheader?nacteny targa header
timeint?jak dlouho je pripojen na serveru
timeuint?cas prijeti zptravy (gettickcount)
timeoutint?za kolik milisekund se spusti aftercommand
title*char?titulek intermise
tname*char?jmeno textury
topsinglevector?heading
touchbfloat?0=model ve vzduch, 1= plnou silou gravitace na zemi, neco mezi = castecne na zemi(na svahu ...)
ts*trans_sprite?seznam s transparentnimi sprity
typint?typ tabu: obecne nejaky integer/konstanta
typeai_func_type?typ funkce
typeai_func_type?typ funkce
type*objectclass?pointer na tridu objektu
typeactive_menu_type?typ menu, ktere je prave aktivni
typecmd_func?typ promenne (float,int,string) a funkce/promenna
typechar?pouze 2 je spravne (RGB)
ubfloat?U,V - souradnice textury
ubfloat?souradnice textury ve vertexu
upvector?vektor pohledu dopredu, doleva a nahoru (jednotkovy, uziti hlavne u hracu)
use_skyboxint1zdali je pouzit skybox
v1vector?3 body tvorici rovinu
v2vector?3 body tvorici rovinu
v3vector?3 body tvorici rovinu
v*vertex?(numvert/maxvert)
vbfloat?U,V - souradnice textury
v*char?value
v_sensitivitybfloat0.01citlivost mysi - vertikalni
val*void?hodnota
var*char?hodnota
vert*vertex?ukazatel na vertexy, nv* vektor
vgammabfloat1.0gamma korekce
visclient_visibility?jestli je hrac videt, nebo ne
weaponint?aktualne zvolena zbran
window_minimizedint01 pokud je okno prave minimalizovane (a tudiz se na nej nemusi kreslit)
world*worldspawn?Cely svet. Obsahuje vsechny objektu a polygony a vsechno co je prave ve hre [EXT]
worlddWorldID?svet (ODE)
world*worldspawn?world do ktereho se to vsechno nahraje
x1int?vyrez obrazovky
x2int?vyrez obrazovky
xbfloat?souradnice ve vektoru (x,y,z)
xfloat?soutradnice
xbfloat?left/right,up/down,pitch, vse ve stupnich
xshort?rozmery obrazku
y1int?vyrez obrazovky
y2int?vyrez obrazovky
ybfloat?souradnice ve vektoru (x,y,z)
yfloat?soutradnice
ybfloat?left/right,up/down,pitch, vse ve stupnich
yshort?rozmery obrazku
you_areint?ktyery z nich je ten, komu je to posilano
zbfloat?souradnice ve vektoru (x,y,z)
zfloat?soutradnice
zbfloat?left/right,up/down,pitch, vse ve stupnich
z_trickint0figl na urychleni renderingu - trochu ale blbne, defaultne disablovan
zero4colorgl4fcolor{0.0,0.0,0.0,0.0}nulovy vektor (4*GLfloat)
zero_4gl4f{0.0,0.0,0.0,0.0}nulovy vektor (4*bfloat)
zipunzFile?handle na otevreny zip archiv

Funkce (564)

ModifikátorJménoParametryDokumentace
BOOL APIENTRYDllMain(HANDLE hModule,DWORD reason,LPVOID lpReserved)dummy dllmain pro dll knihovnu
int WINAPIWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)main funkce pro GDI aplikace
void_aliaslist1(char *name,char *cmd)vnitrni cylkus vypisu aliasu - konzole
void_aliaslist2(char *name,char *cmd,FILE *alias_f)vnitrni cylkus vypisu aliasu - soubor
void_cmd_ailist(char *name,ai_leaf *c)callback funkce pro vypis funkci objektu
void_cmd_classlist(char *name,objectclass *c)callback funkce pro vypis class
void_cmd_modellist(char *name,model *m)callback funkce pro vypis modelu
void_cmd_soundlist(char *name,sound *s)callback funkce pro vypis zvuku
void_cmd_texlist(char *name,texture *t)callback funkce pro vypis textur
void_model_flush(char *name,model *t,l_list **l)vnitri callback funkce model_flush (pridani do seznamu)
cdecl_int_sprite_compare(const trans_sprite *a,const trans_sprite *b)porovnavaci funkce pro integrovany quicksort
void_tex_flush(char *name,texture *t,tex_list **l)vnitri callback funkce tex_flush (pridani textury do seznamu)
voidaa_box(aa_bbox *result,bbox b)prevede orientovanou bounding-box na axis-aligned bounding-box
voidaa_drawbox(const aa_bbox b)Nakresli na obrazovku axis-aligned 3d bounding box. Vicemene debugovaci funkce, jijnak se nepouziva
voidabox_addvertex(aa_bbox *a,vertex v)prida vertex do bounding boxu
vectorabox_distance(vector from, aa_bbox *a)Spocita vzdalenost daneho bodu od daneho bounding boxu
voidabox_enlarge(aa_bbox *a,const vector m)axis-aligned bounding box je zvetsena o vektor pohybu
voidabox_inf(aa_bbox *b)nastavi na axis-aligned bounding boxu do souradni + a - nekonecno
intabox_intersect(const aa_bbox a,const aa_bbox b)test jestli se dve bounding boxy prekryvaji
aa_bboxabox_move(aa_bbox *a,const vector p)vrati axis-aligned bounding box posunutou o vektor polohy
voidabox_move_v(aa_bbox *a,const vector p)axis-aligned bounding box je posunuta o vektor polohy
voidabox_null(aa_bbox *b)vynujuje axis-aligned bounding box
voidabox_scale(aa_bbox *a,const bfloat scale)axis-aligned bounding box je vynasobena o konstantu scale
voidabox_scale_v(aa_bbox *a,const vector scale)axis-aligned bounding box je vynasobena o vektor scale
aa_bboxabox_x(bfloat x)vrati aa-bbox dane velikosti (<-x -x -x> - <+x +x +x>)
voidai_assign(objectclass *c,const char *name,ai_func_type type)k dane classe priradi danou funkco pro dany typ
intai_call_check(object3d *obj,ai_func_type func)zkontroluje jestli lze zavolat objekt funkci (jestli je nastavena)
ai_resultai_call_create(AI_CREATE)Automatically generated from AI_CREATE (call object's create function)
ai_resultai_call_damage(AI_DAMAGE)Automatically generated from AI_DAMAGE (call object's damage function)
ai_resultai_call_destroy(AI_DESTROY)Automatically generated from AI_DESTROY (call object's destroy function)
ai_resultai_call_timer(AI_TIMER)Automatically generated from AI_TIMER (call object's timer function)
ai_resultai_call_touch(AI_TOUCH)Automatically generated from AI_TOUCH (call object's touch function)
voidai_dogib(object3d *o)da objektu nahodnou rychlost/rotaci.. udela z nej letici srapnel/gib
voidai_register_all()zaregistruje vsechny objekt funkce
voidai_register_func(const char *name,aifunc *func,ai_func_type type)zaregistruje jednu objekt funkci
voidaic_addprop(object3d *self,const char *key,const char *value)prida do classy hodnotu key=value
voidaic_areadamage(object3d *source,bfloat damage,bfloat range,damage_type dtype,vector origin)zpusobi area damage o hodnote damage, vzdalenosti range, typ damage je dtype a pocatek je v origin.
source je objekt, kteremu se pripise bod za pripadny kill
object3d *aic_createobject(vector origin,const char *classname)vytvori na dane pozici novy objekt daneho classname
voidaic_destroyobject(object3d *who)zpusobi zanik objektu
char *aic_getprop(object3d *self,const char *name)vytahne z classy hodnotu name (hleda v properties) a vrati ji jako string
bfloataic_getpropf(object3d *self,const char *name)vytahne z classy hodnotu name (hleda v properties) a vrati ji jako bfloat
bfloataic_getpropfd(object3d *self,const char *name,bfloat defvalue)vytahne z classy hodnotu name (hleda v properties) a vrati ji jako bfloat,
pokud neexistuje, tak vrati defvalue (defaultni hodnotu)
intaic_getpropid(object3d *self,const char *name,int defvalue)vytahne z classy hodnotu name (hleda v properties) a vrati ji jako int,
pokud neexistuje, tak vrati defvalue (defaultni hodnotu)
voidaic_player_movement(object3d *who,int ticks)pohyb (teleso typu hrac, neletajici)
voidaic_playsound(object3d *o,const char *name,bfloat variability)prehraje zvuk, vychazejici z daneho objektu, variability je mezi 0 a 0.5, urcuje promenslivost vysky zvuku
voidaic_recast(object3d *who,const char *name)zmeni tridu z jednoho objektu na jiny.
Destruktor stareho se nevola, konstruktor noveho ano
voidaic_removeobject(object3d *who)zpusobi zanik objektu BEZ volani destruktoru.
Napriklad pokud se objekt v konstruktoru rozhodne, ze se ani nechce vytvorit
a jeho destruktor obsahuje nezadouci efekty (gibs, blood, atd ...)
voidaic_standard_movement(object3d *who,int ticks)pohyb (teleso typu "kus sutru" bez pohonneho systemu - krome gravitace :o)
intalGetSource(ALuint src,ALenum name)jako alGetSourcei, ale funkce hodnotu vraci primo, ne odkazem
voidalerr(const char *s)v pripade ze OPENAL vrati chybu, tak ji vytiskne na konzoli
voidaliaslist(FILE *f)vypise aktualni aliasy do souboru nebo na konzoli (pokud f==NULL)
vectoratov(const char *vstr)prevede retezec na vektor (format "x y z" nebo "X,y,z")
voidb3d_2d(void)nastavi 2d projekci o souradnicich (0,0 - maxx,maxy), vypne Z-buffer a backface culling
cdecl_voidb3d_callbackreshape(int x,int y)callback funkce volana pri zmene rozmeru okna
voidb3d_callbacks(void)zaregistruje callbacks (mys, klavesnice, grafika ....)
voidb3d_centermouse(void)vycentruje mys - presune pointer doprostred okna/obrazovky
voidb3d_fps(client *c)na obrazovku vyhodi overlay s FPS informacemi
voidb3d_frame_init(const vector fogcolor)inicializace OpenGl na zacatku framu (vycisteni obrazovky, depth bufferu, atd ....)
voidb3d_frame_single_init(bfloat range)inicializace OpenGl na zacatku framu pro kazdou obrazovku ve split screenu
voidb3d_init(int w,int h,int *argc, char** argv)inicializace OpenGL, vytvoreni okna ...
voidb3d_light(int num,const gl4fcolor *position,const gl4fcolor *color)vlozi do sceny 1 svetlo
voidb3d_light_init()zapne osvetleni sceny (plusminus zeshora)
voidb3d_local2d(int px,int py,int wx,int wy)nastavi 2d projekci o souradnicich (0,0 - wx,wy), vypne Z-buffer a backface culling
voidb3d_platform_init(void)drobne zkrasleni prostredi zavisle na platforma (napr. ikonka ve windows, atd ...)
voidb3d_quit(void)Uklizeci rutina. Vola se na konci programu
voidb3d_recalc_window(void)vola se pri zmene velijkosti obrazovky (nebo velikosti fontu, nebo ...)
voidb3d_sound_setpos(object3d *listen)nastavi listenera pomoci objektu
voidb3d_soundexit()deinicializace zvukoveho systemu
voidb3d_soundinit()inicializace zvukoveho systemu
voidb3d_static_init()naalokuje staticka data
voidb3d_stop_sounds()zastavi vsechny zvuky
char *b_actionname1(int action)k Id akce obsahujici hrace vrati textovou reprezentaci ve statickem retezci
char *b_actionname(int player,int action)k hraci a ID akce vrati textovou reprezentaci ve statickem retezci
voidb_applyaccel(object3d *p,bfloat fwd,bfloat right,bfloat up,bfloat last_tick_time)aplikuje akceleraci na objekt (hrace)
voidb_applymaterial(material *m)aplikuje do opengl material. NULL pouze vyresetuje "nacachovany" material.
voidb_applyphysics(object3d *p,bfloat tick_time)na objekt aplikuje fyzikalni zakony (tick funkci, pohyb, rotace ...)
voidb_create_explosions()vytvori modely s explozemi
cdecl_voidb_disp(void)callback co se vola pri pozadavku na zobrazeni
voidb_flush_dead_objects(worldspawn *world)odstrani z pameti smazane objekty (co maji nastavenmy flag 'smazany')
cdecl_voidb_idle(void)idle callback (vola se porad, vzdy po skonceni framu a dozavolani handleru...)
voidb_ikey(int c,int is_down)zpracovani klavesy pri zmakcnuti ci odmacknuti
cdecl_voidb_key(unsigned char c, int x,int y)handler na zmacknuti klavesy
char *b_keyname(int key)ke klici vrati jeho nazev ve statickem retezci
cdecl_voidb_keyup(unsigned char c, int x,int y)handler na odmacknuti klavesy
voidb_loaddata(void)nahraje zakladni textury (font, pozadi konzole....) a jina data
model3d *b_loadmodel(const char *name)zavola b_loadmodel_internal a nezvysi usage counter
model *b_loadmodel_internal(const char *name)nahraje model s danym jmenem a zaradi ho do seznamu nahranych modelu
Pokud je v pameti tak misto nahravani rovnou vrati pointer.
Muze vratit i null (prazdny model)
model3d *b_loadmodel_r(const char *name)zavola b_loadmodel_internal a zvysi usage counter
model3d *b_loadmodel_r_trans(const char *name,bfloat tx,bfloat ty,bfloat tz,bfloat sx,bfloat sy,bfloat sz)quick hack - nahraje model a pak ho scaluje a posunuje - nyni neni pouzivano
sound *b_loadsound(const char *name)nahraje zvuk do pameti pokud tam neni, pokud tam je tak vrati pointer
texture *b_loadtexture(char *name)nahraje texturu s danym jmenem a zaradi ji do seznamu nahranych texturv "texture manageru"
Pokud je v pameti tak misto nahravani rovnou vrati pointer.
texture *b_loadtexture_r(char *name)zavola b_loadtexture a zvysi usage counter u textury
voidb_mouse2(int button,int is_down,int x,int y)handler na zmacknuti/odmacknuti tlacitka mysi
cdecl_voidb_mouse(int x,int y)handler na pohyb mysi
voidb_mousephysics(void)callback funkce na pohyb mysi (mouselook, atd ...)
voidb_ode_nearcallback(worldspawn *w,dGeomID o1,dGeomID o2)callback funkce na ODE - kolize
voidb_ode_retreive_world(worldspawn *w)vezme z ODE pozice objektu a updatuje pozice ve worldspawnu
voidb_ode_retrieve_objectlist(objectlist o)vezme z ODE pozice objektu v updatuje podle nich dany objetlist
voidb_oneplayer_disp(client *c)pro jednoho hrace se zobrazi v jeho okne to, co vidi
voidb_oneplayer_hud(client *c)zobrazi HUD pro jednoho hracre v jeho vyrezu
voidb_playsound(sound *s,object3d *source,bfloat variability)prehraje zvuk z daneho zdroje. Variability: promenlivost vysku zvuku (0-0.5)
voidb_postdisplay(void)vola se na konci kazdeho framu - zobrazeni globalniho overlaye prese vsechny okna
(menu, konzole....) -> po zobrazeni jednotlivych splitscreenu
voidb_predisplay(void)vola se na zacatku kazdeho framu - vycisteni z-bufferu a podobne ....
pred zobrazenim jednotlivych obrazovek
voidb_run_physics(worldspawn *world,bfloat tick_time)na kazdy objekt aplikuji fyzikalni zakony a osetrim kolize, atd ....
voidb_showworld(object3d *self)zobrazi dany svet z pohledu objektu self
cdecl_voidb_skey(int c,int x,int y)handler na zmacknuti specialni klavesy
cdecl_voidb_skeyup(int c,int x,int y)handler na odmacknuti specialni klavesy
voidb_skybox(int x,int y,int wx,int wy,client *c)vykresli skybox. wx a wy jsou sirka okna kde skybox bude a x a y jeho pozice
voidb_startup(void)nahraje uvodni svet - jakysi startup script. Spousti se po nahrani konfigurace a nahrani zakladnich dat
char *b_strncat(char *dest,const char *source, size_t count)jako strncat, ale pocet znaku je omezeni delky retezce celkem, vcetne NULL znaku, ne jen pridavaneho retezce
char *b_strncpy(char *dest,const char *source, size_t count)jako strncpy, ale posledni znak vzdy nastavi na NULL
voidb_tick(void)timer funkce - vola se kazdy frame hry, zajistuje pohyb objektu a vsechno, co je potreba opakovat po kazdy frame
voidb_unloadmodel(const char *name)podiva se po modelu s danym jmenem v pameti a pokud tam je, tak ho odstrani
intb_unloadmodel_r(const char *name)podiva se po modelu s danym jmenem v pameti a pokud tam je, tak ji snizi reference count. Pokud je 0, tak je odstranen z pameti
vraci: 1 - model odstranen
0 - model neni v pameti
voidb_unloadtexture(char *name)podiva se po texture s danym jmenem v pameti "texture manageru" a pokud tam je, tak ji
natvrdo odstrani (nezkouma jestli se pouziva nebo tak nejak)
voidb_unloadtexture_r(char *name)podiva se po texture s danym jmenem v pameti "texture manageru" a pokud tam je, tak ji snizi reference count. Pokud je 0, tak je textura odstranena z pameti
cdecl_voidb_win(int c)handler na zmenu stavu okna (minimalizovano/neminimalizovano)
voidbench_result(void)prestane merit cas a vypise vysledek na konzoli
voidbench_start(void)zacne merit cas
voidbind_key(const char *key,const char *action)na prislusnou klavesu nabinduje prislusnou akci
voidbindlist(FILE *f)vypise aktualni keybindings do souboru nebo na konzoli (pokud f==NULL)
voidbnextrand(void)adjust randseed to next random number in sequence
vectorboxv(aa_bbox *orig,int box,int num)vraci num-tou souradnici (1..4) box-teho polygonu (1..6) v bounding boxu
unsigned intbrandom(unsigned int max)return random number between 0 and max-1, maximum allowed max is 65536
voidbsrandom(void)inittialization of random number generator
char *btime(const struct tm* t)naformatuje datum do stringu. Nelze pouzivat multithreaded
voidchatconsole_add(const char *s)prida message do chatconsole
const char *chatconsole_printstring()vrati text chatu, orizly na max. velikost obrazovky a jednotlive radky oddelene newlinem
voidchatconsole_setlen(int newlen)omezi delku chatconsole na newlen, odmazavaje stare zpravy, pokud je potreba
voidclass_set(object3d *o,const char *name)nastavi objektu typ a zavola kontruktor classy
voidcmd_addmenu(const char *param)prida menu, prvni parametr nazev, zbytek definice
voidcmd_ailist(const char* param)prikaz na vypis nahranych funkci objektu(debugovaci)
voidcmd_alias(const char *param)priradi alias k prikazu
voidcmd_bind(const char *param)priradi prikaz na klavesu
voidcmd_bindmenu(const char *param)vyvola bindmenu
voidcmd_center(const char *param)vycentruje pohled hrace.
voidcmd_change_skymap(const char *param)zmeni behem hry pouzitou skymapu
voidcmd_classlist(const char* param)prikaz na vypis nahranych class (debugovaci)
voidcmd_clear(const char *param)vycisti konzoli
voidcmd_clearhist(const char *param)vycisti historii prikazu
voidcmd_connect(const char *param)pripoji se na danou adresu
voidcmd_delmenu(const char *param)smaze menui s nazvem v param
voidcmd_disconnect(const char *param)odpoji se jako kllient od serveru
voidcmd_echo(const char *param)vypise retezec na lokalni konzoli
voidcmd_exec(char *cmdline)vola se pri spousteni prikazu na konzoli. Funkce zjisti handler (viz register_special_var apod.) a provede prislusnou akci
voidcmd_execfile(const char *name)spusti konfiguracni soubor z disku
voidcmd_flushtex(const char *param)likvidace starych textur z pameti
voidcmd_font_resize(const char *param)funkce volana po zmene velikosti fontu
voidcmd_fvalue(const char *id,const char *param,bfloat min,bfloat max,bfloat *value)vola se pri spousteni prikazu na konzoli, pokud je spusteny prikaz float promenna (nastaveni/vypis hodnoty)
voidcmd_gen2d(const char* param)prikaz na generovani 2d sveta (krajiny)
voidcmd_gen3d(const char* param)prikaz na generovani 3d sveta (krychle)
voidcmd_glinfo(const char *param)vypise opengl info na konzoli
voidcmd_help(const char *cmdparam)vypise helptext pro prikaz
voidcmd_ivalue(const char *id,const char *param,int min,int max,int *value)vola se pri spousteni prikazu na konzoli, pokud je spusteny prikaz integer promenna (nastaveni/vypis hodnoty)
voidcmd_killserver(const char *param)odstreli pripojene hrace a prestane naslouchat
voidcmd_listen(const char *param)zacne naslouchat na danem portu
voidcmd_listmenu(const char *param)vypoise na konzoli seznam definovanych menu
voidcmd_load(const char* param)prikaz na nahrani mapy ve formatu b4d. Bude i s priponou
voidcmd_map(const char* param)prikaz na zmenu mapy. Bude i s priponou
voidcmd_menu(const char *param)vyvola menu s danym nazvem (pokud existuje, jinak neudela nic)
voidcmd_modellist(const char* param)prikaz na vypis nahranych modelu (debugovaci)
voidcmd_net_connections(const char *param)debugovaci prikaz na vypis konexi
voidcmd_nickname(const char *param)prikaz na zmenu jmena
voidcmd_objlist(const char* param)prikaz na vypis nahranych class (debugovaci)
voidcmd_pause(const char *param)pausne/unpausne hru
voidcmd_playeradd(const char *param)prida hrace do hry
voidcmd_playerkill(const char *param)odstreli jednoho hrace ve hre (s danym cislem, nebo last=posledni)
voidcmd_playerlist(const char *param)vypise seznam hracu ve hre
voidcmd_playernext(const char *param)prepe na dalsiho hrace (defaultni input focus)
voidcmd_playerprev(const char *param)prepe na predchoziho hrace (defaultni input focus)
voidcmd_playersetnum(const char *param)nastavi pocet hracu ve hre na danou hodnotu
voidcmd_playerswitch(const char *param)prepne na hrace s danym id
voidcmd_ppos(const char *param)vypise na konzoli pozici a vektory hrace
voidcmd_quit(const char *param)konec hry
voidcmd_savealiases(const char *filename)ulozi aliasy do souboru
voidcmd_saveallconfig(const char *param)ulozi veskere nestaveni (pri ukonceni nebo pri pozadavku)
voidcmd_saveconfig(const char *filename)ulozi promenne u kterych je nastaven flag ze se maji ukladat do konfiguracniho souboru
voidcmd_say(const char *param)say - poslani zpravy vsem
voidcmd_screenshot(const char *param)tipne screenshot (volitelny parametr=filename)
voidcmd_snd_volume(const char *param)nastavi hlasitost zvuku
voidcmd_soundlist(const char* param)prikaz na vypis nahranych zvuku (debugovaci)
voidcmd_svalue(const char *id,const char *param,int min,int max,char **value)vola se pri spousteni prikazu na konzoli, pokud je spusteny prikaz string promenna (nastaveni/vypis hodnoty)
voidcmd_texlist(const char* param)prikaz na vypis nahranych textur (debugovaci)
voidcmd_unalias(const char *param)smazne alias
voidcmd_unbind(const char *param)odstrani prirazeni prikazu na klavesu
voidcmd_unbindall(const char *param)zrusi vsechna prirazeni prikazu na klavesy
intcmd_usebind(int key,int is_down)vola se pri pouziti klavesy s vnitrnim kodem key, down==0 pokud odmacknuta, jinak stisknuta
voidcmd_version(const char *param)vypise verzi hry na konzoli
voidcmd_vidmode(const char *param)zmeni ve fullscreenu videorezim (momentalne nefunguje)
voidcmd_vvalue(const char *id,const char *param,bfloat min,bfloat max,vector2 *value)vola se pri spousteni prikazu na konzoli, pokud je spusteny prikaz vector promenna (nastaveni/vypis hodnoty)
voidcmd_window_resize(const char *param)zmeni velikost okna
intcollision3d(aa_bbox *eabox,aa_bbox *abox,vertex move,vertex normal,vector *coll,vector *bounce,int nc,facecoord *facev,vector *vert)vraci true pokud doslo ke kolizi.
v tom pripade je v coll bod kolize a v bounce je bounce-off vektor (normalizovany)
eabox je move-extended bounding box objektu
abox je bounding box objektu
normal je nrormala facu, se kterym se dela test
nc je pocet souradnic polygonu se kterym se kliduje,
v facev jsou vertexy jeho facu (odkazy)
a vert je ukazatel na pole s vertexy
intcollision_q(vector *p,aa_bbox *abox,vector2 *move,aa_bbox *obox,vector *coll,vector *bounce)kolize dvou objektu (dvou aboxu)
voidcon_addhist(char *cmd)prida prikaz do historie prikazu v konzoli
voidcon_autocomplete(char *cmdline)pri zmacnuti tabulatoru se pokusi o autocomplete toho, co je na prikazove radce
voidcon_autoprint(const char *x,cmd_func t,void *f)vytiskne na konzoli jednu polozku pri autocomplete (pokud je vice moznosti)
char *con_downhist(void)pohyb v historii dolu (novejsi prikazy)
voidcon_draw(int ofs,int lines)vykresli na obrazovku lines radku konzole, kresli se odzdola nahoru a od posledni radky
k prvni, prvnich ofs radek je pred kreslenim odzadu preskoceno)
voidcon_print(const char *s)vypise radek na konzoli
voidcon_printf(const char *fmt, ...)formatovany vystup, vypise radek nakonzoli (viz con_print)
voidcon_printfv(const char *fmt, ...)formatovany vystup, vypise radek nakonzoli (viz con_printv) - pise pouze pokud neni nastaven silent
voidcon_printfz(const char *fmt, ...)formatovany vystup, vypise radek nakonzoli (zalamovany) (viz con_print)
voidcon_printv(const char *s)vypise radek na konzoli - pokud neni nastaven silent flag
char *con_uphist()pohyb v historii nahoru (starsi prikazy)
ai_resultcreate_explosion(AI_CREATE)konstruktor exploze - nastaví model na model exploze
ai_resultcreate_mapobject(AI_CREATE)Konstruktor mapobjektu - nezničitelný objekt v mapě s daným modelem. Stejně jako u zdi, i zde je brána v úvahu vlastnost appearance
AI_API intcreate_nothing(object3d *self)dummy funkce (neudela nic)
ai_resultcreate_nothing(AI_CREATE)prázdný konstruktor
ai_resultcreate_wall(AI_CREATE)Konstruktor zdi. Pokud je nastaveno appearance, je to pravděpodobnost v procentech, že zeď bude vytvořena (default je 100)
ai_resultdamage_bomb(AI_DAMAGE)Poškození: objekt se sám zničí (používá se u bomb, kde zničení obvykle vyvolá explozi)
ai_resultdamage_normal(AI_DAMAGE)při poškození sníží zdraví (health) objektu (standardní chování), pokud klesne pod nulu, zavolá destruktor
AI_API intdamage_nothing(object3d *self,bfloat f,int i,vector v)dummy funkce (neudela nic)
ai_resultdamage_nothing(AI_DAMAGE)na poškození nereaguje (tedy nezničitelný objekt)
ai_resultdamage_player(AI_DAMAGE)funkce pro poškození hráče, pokud klesne zdraví (health) pod nulu, je hráč zabit a útočníkovi připsán bod
ai_resultdamage_pushable(AI_DAMAGE)Poškození pro objekty, co jsou při explozi odmrštěny dále
voiddebug_aabox(const aa_bbox a)vykresli debugovaci axis-aligned bounding box
ai_resultdestroy_bomb(AI_DESTROY)Zničení bomby způsobí explozi (ve vlastnostech bomby lze nastavit sílu a dosah - damage a range)
AI_API intdestroy_nothing(object3d *self)dummy funkce (neudela nic)
ai_resultdestroy_nothing(AI_DESTROY)Defaultní destruktor - neudělá nic (a objekt je pak zničen)
voiddisplay_chat_message(const char *s)zobrazi chat message na obrazovku a do chatconsole
voiddisplay_worldspawn(const worldspawn *w,object3d *self,options *opt)zobrazi cely svet (krome self)
voiddisplaymodel(model3d *m,object_features *feat,options *opt,vertex *model_position)zobrazi model. Pri prvni zobrazeni se take mohou delat optimalizace modelu (call list)
voiddisplayobject(object3d *o,object3d *self,options *opt)zobrazi jeden objekt, vcetne podrazenych objektu
voiddisplayobjectlist(objectlist o,object3d *self,options *opt)zobrazi seznam objektu (na kazdy vola displayobject)
voiddo_respawn(players *pl)provede respawn po smrti
voiddo_shot(players *pl,bfloat shot_speed)zpracuje vystrel daneho klienta
voiddo_switch(players *pl,int next,int prev)zpracuje zmenu zbrane daneho klienta
voiddrawbox(const bbox b)Nakresli na obrazovku 3d bounding box. Vicemene debugovaci funkce, jijnak se nepouziva
matlist *dupmatlist(matlist *t)zduplikuje texture list
voideditkey(char *s,int c,uint maxlen)pri stisknuti klavesy na editacni radku zajisti zprcovani (vcetne backspace, historie, autocomplete ...)
intempty(const char *a)vrati 1 pokud je retezec NULL nebo prazdny
inteq(const char *a,const char *b)vrati 1 pokud se retezce rovnaji
inteqi(const char *a,const char *b)vrati 1 pokud se retezce rovnaji (case insensitive)
voidfatal(char *s)vyskoci s chybovou hlaskou. Dobre k debugovani
voidfatal(const char *s)vypise chybovou hlasku a ukonci program
voidfatalf(char *fmt,...)jako fatal(), ale s formatovanym retezcem jako u printf
voidfclose2safe(FILE *f)pokud se soubor podari zapsat, tak smazne starou zalohu
voidfirstword(const char *cmd,char *parm)vrati prvni slovo z cmd do parm
FILE*fopen2(const char *s1,const char *s2,const char *m, uint *filesize)otevre soubor a vrati jeho velikost
FILE *fopen2safe(const char *s1,const char *s2)otevre soubor, ale predtim ten stary zazalohuje
voidfreel_list(l_list *t)odalokuje v pameti linked list
voidfreematlist(matlist *t)odalokuje v pameti material list
voidfreemodel(model3d *m)odalokuje v pameti model - pokud na nej nejsou reference
voidfreemodel_real(model3d *m)odalokuje v pameti model
voidfreeobject(object3d *o)odalokuje objekt vcetne podrazenych stuktur a child objektu. Neodalokuje ale parent
voidfreeobjectclass(objectclass *c)odalokuje v pameti object class
(zde pouze snizi pocet referenci, k skutecne odalokaci dojde pozdeji,
az pri zavolani garbage collectoru - typicky po nahrani dalsiho levelu
se odstani ty veci co v tom levelu nejsou. Tohle bude chtit jeste doresit)
voidfreeobjectlist(objectlist o)odalokuje seznam objektu (jeden po druhem
voidfreeproperties(properties *p)odalokuje v pameti properties
voidfreetexlist(tex_list *t)odalokuje v pameti texture list
voidfreetoken(text_token *t)uvolni token z pameti, vcetne jeho vnitrku, tedy dat, ze kterych byl token vytvoren
voidfreeworld(worldspawn *w)odalokuje cely svet
voidfs_alphafix(tgafile *t)Spravi transparenci u textur. Pokud je vsude 0, tak ji nastavi vsude na 255
voidfs_close(void)zavre vsechny otevrene archivy
intfs_exist(const char *name)vraci true pokud soubor existuje, 0 pokud neexistuje
voidfs_failsafe_texture(texture *tex)vyrobi "defaultni" hnusnou texturu, ktera je pouzita kdyz textura chybi/nelze nahrat
Je to tam aby to kvuli tomu nesletelo, ale textura je tak hnusna, ze toho ze tam chybi
si asi kazdy hned vsimne
intfs_getzippedfile(unzFile uf,void **out,const char* filename)Nahraje soubor ze zip archivu, vrati jeho velikost, pokud *out je null tak se neco nepovedlo
voidfs_init()otevre ocislovane zip archivy,pocinaje dyna0.zip
intfs_loadfile(void **out,const char *name)nahraje soubor, nejdriv z disku, kdyz neni tak z archivu
vrati velikost v bajtech a pokud neuspeje, vrati 0 a out je nastaven na NULL
intfs_loadjpegfile(void **out,const char *name)nahraje jpg texturu a zkonvertuje do .tga textury,
vrati velikost v bajtech vc. hlavicky a pokud neuspeje, vrati 0 a out je nastaven na NULL
model *fs_loadmodel(const char *name)Nahraje model z disku do pameti, typ modelu se vezme dle pripony
voidfs_loadskymap(const char *basename)nahraje skymapu z 6 textur xzacinajicich danym prefixem (basename)
sound *fs_loadsound(const char *name)nahraje zvuk do pameti a do openal
voidfs_loadtexture(texture *ou,const char *name)Nahraje texturu. Nejdriv zkusi .tga, potom .jpg
intfs_loadtgafile(void **ou,const char *name)nahraje tga texturu
vrati velikost v bajtech vc. hlavicky a pokud neuspeje, vrati 0 a out je nastaven na NULL
worldspawn *fs_loadworld(const char* param)nahraje mapu z disku, ze spravneho adresare
intfs_open(const char *name)Otevre zip archiv. 1=uspech, 0=neuspech.
voidfs_rgbfix(tgafile *t)Targy jsou v BGR misto RGB ... tohle je zkonvertuje do spravneho formatu
voidfs_unloadmodel(model *ou)Uvolni nahrany model z pameti
voidfs_unloadtexture(texture *ou)Uvolni nahranou texturu z pameti
intfsize(const char *f)vrati velikost souboru
intfsize(char *f)vrati velikost souboru
char *ftoa(bfloat x)zkonvertuje float na string
worldspawn *generate_stock2d(int x,int y,int z)vygeneruje model - krajinu
worldspawn *generate_stock3d(int x,int y,int z,int corner)vygeneruje 3d bludiste - takovou tu soustavu krychli (x*y*z krychli).
char *getprop(properties *p,const char *name)z properties ziska vlastnost jako string
char **getprop_a(properties *p,const char *name)z properties ziska odkaz na string (vhodne kdyz ho chceme zmenit)
uintgettickcount(void)vrati pocet milisekund od startu
voidgl_2dclip(bfloat x,bfloat y,bfloat wx,bfloat wy)nastavi orezavani pri 2d souradnicich na ramecek dany pozici (x,y) a sirkou (wx,wy)
nastaveni sirky na (0,0) vypne orezavani
voidgl_addsprite(const vertex *vx,const options *opt, texture *t,byte color[4],byte alpha,bfloat spritescale,vertex *modelrealpos)nakresli dany sprite. Respektive vlozi do seznamu k pozdejsimu nakresleni
modelrealpos je pozice stredu spritu.
vx je vektor posunuti spritu oproti pozici modelrealpos (relativni vzhledem k smeru pohledu hrace)
na jedne modelrealpos muze byt poveseno vice spritu (nekolik vrstev exploze, napr.)
voidgl_drawsprites(const options *opt)vykresli vsechny sprity v seznamu
voidgl_initsprites(void)inicializuje seznam spritu (vyprazdni ho)
voidgl_loadtex(int num,int bpp,int x,int y,void *tex)nahraje texturu z pameti do pameti graficke karty, k texture navic vyrobi mipmapy
voidgl_loadtgatex(int num,tgafile *tex)nahraje texturu v pameti v .tga formatu do pameti graficke karty. Detaily viz loadtex
voidgl_printchat(client *c,const char *ms,int lines)vytiskne chat window na obrazovku (spodni konec obrazovky)
voidgl_rectangle(bfloat x1,bfloat y1, bfloat x2,bfloat y2)vykresli obdelnik v 2d souradnicich - barva a textura mui byt predem nastaveny
voidgl_settexture(texture *t)nastavi v opengl danou texturu, nebo NULL pokud textura neni
voidgl_show_scoreboard()gl show scoreboard (volano pri if (score is down) pro kazdeho hrace)
voidgl_texture_off()Vypne texturu
voidgl_texture_on(int id)nastavi texturu (pokud jiz neni nastavena ta sama)
voidgl_transform(vector pos, const dReal *r)vynasobi matici daty ziskanymi z ODE (rotace + posunuti)
voidglchar(int c)vyplivne na obrazovku jeden znak a posune matici
tree *glext_parse(const char *extlist)rozparsuje seznam OpenGL extensions a nahazi je do BVS stromu
voidglprintfi2(char *desc,char *name,int what)zjisti z OpenGL danou konstantu (souradnice) a vytiskne je
voidglprintfi(char *desc,char *name,int what,int min)zjisti z OpenGL danou konstantu a vytiskne ji
voidgltext(const char *s)vyplivne na obrazovky retezec, rozeznama znak newline
voidgltext_at(const char *s,bfloat x,bfloat y)vyplivne text na obrazovce posunuty o zadane souradnice
voidgltext_center(const char *s,bfloat y)vytiskne text zarovnany na stred obrazovky
voidgluquad(const vector org,const vector left,const vector down)nakresli rovnobezny ctyruhelnik s bodem v org a stranami left a down (debugovaci funkce)
voidhud_show(client *c,hud_position hp,char *btext,bfloat sizex,bfloat sizey,byte r,byte g,byte b,byte a,byte br,byte bg,byte bb,byte ba)na dane misto na HUD vypise dany text danou velikosti fontu (+ je absolutni v pixelech, - je relativni v obrazovkach, 0=stejne jako druha souradnice) a barvou pisma (prvni 4 RGBA pipsma, druhe 4 RGBA pozadi)
voidinit_menus(void)vytvori system menu. Zatim pouze 1 menu - main
voidintermission_check()zkontroluje jestli nedoslo k intermisi a osetri timeout u intermise
voidintermission_disp()pokud je stav intermission, zobrazi finalni screen
voidintermission_end()ukonci intermission (pokud nejaka byla)
voidintermission_start(const char *title, const char *text)zapocne intermission. Behem intermission se neupdatuje fyzika
geom_intersectintersect_plane_plane(vector v1,vector n1,vector v2,vector n2,plane_plane_intersect *i)pro dve roviny (v1,n1) a (v2,n2) - bod na rovine a normala spocte jejich
prunik a vektory ukazujici z pruniku "dovnitr" poloroviny
n1 a n2 MUSI byt normalizovane!!
geom_intersectintersect_ray_plane(vector v1,vector d1,vector v2,vector n2,ray_plane_intersect *i)pro primku (v1,n1) a rovinu (v2,n2) - bod na rovine/primce a normala/smernice spocte jejich
prunik a pozici na primce vzhledem k bodu
geom_intersectintersect_ray_ray(vector v1,vector p1,vector v2,vector p2,ray_ray_intersect *i)pro 2 primky (v1,p1) a (v2,p2) - spocte jejich
prunik a pozici na primce vzhledem k bodu
voidintersect_stats(vector v1,vector p1,vector v2,vector p2)spocita statistiky pruniku primek (debugovaci funkce, pro optimalizaci...)
voidintersect_stats_p()vytiskne statistiky pruniku primek (debugovaci funkce, pro optimalizaci...)
intis_n_cmd(int cmd_num,const char *s)test jesli je retezec prikaz z priplaclym cislem (pro konkretniho hrace) nebo jestli je bez cisla (pro aktivniho hrace)
intiscmd(const char *cmd,const char *what,char *parm)vraci 1 pokud cmd je prikaz what a nakopiruje parametry do parm
voidjpeg_mem_src(j_decompress_ptr cinfo,void *mem,int mem_len)callback funkce pro JPEGlib - (jpeg v pameti)
voidkillclient(client *c)odmazne ze hry jednoho klienta
voidl_list_add(l_list **m,void *tex)prida tex do linked listu
intloadfile(void **out,const char *name)nahraje soubor do pameti, vrati velikost
voidlookup_alias(char **cmdline)najde alias a nahradi prikazovou radku aliasem, pokud uspeje
voidm_tex_ceil_id(tmpmodel *tmp,int q, texture *texid,bfloat x1,bfloat y1,bfloat x2,bfloat y2,int level)pomocna funkce pro generate_stock3d: vyrobi kus stropu
voidm_tex_floor_id(tmpmodel *tmp,int q, texture *texid,bfloat x1,bfloat y1,bfloat x2,bfloat y2,int level)pomocna funkce pro generate_stock3d: vyrobi kus podlahy
voidm_tex_wall_id(tmpmodel *tmp,int q, texture *texid,bfloat x1,bfloat y1,bfloat x2,bfloat y2,int level)pomocna funkce pro generate_stock3d: vyrobi kus zdi
intmain(int argc,char** argv)main funkce pro console aplikace
intmain(int argc,char** argv)main
intmain(int argc,char** argv)main
intmain(int argc,char **argv)main
intmain(int argc,char **argv)main of the transparency utility
void *malloc0(size_t t)naalokuje pamet. Selhani neni povoleno (vede k padu programu, viz malloc1), pamet vyplnena nulama
void *malloc1(size_t t)naalokuje pamet. Selhani neni povoleno (pri nedostatku pameti program konci s chybovou hlaskou)
voidmap_change_handler()vola se po zmene mapy - po siti se posle info
material *mat_create(byte r,byte g,byte b,byte alpha,texture *texture1)vytvori material s danymi parametry a nastavi reference count na 1
voidmat_free(material *m)odalokuje material, pokud uz na nej nikde nic neukazuje
voidmat_list_addmaterial(matlist **m,material *tex)prida material do seznamu
voidmaterial_list_use(matlist *t,int r)projde texturelist a u kazde textury v nem zvysi refcount (pocet pouziti) o r
bfloatmax_box(bfloat a,bfloat b,bfloat c)maximum z 0,a,b,c,a+b,a+c,b+c,a+b+c - nejvetsi vrchol krychle
void *maybe_malloc0(size_t t)naalokuje pamet a vyplni nulama. Vrati 0 pri selhani
void *maybe_malloc1(size_t t)naalokuje pamet. Vrati 0 pri selhani
METHODDEF_booleanmem_input_buffer(j_decompress_ptr cinfo)spec. funkce pro JPEGlib - input buffer, nacte kus jpegu z pameti
METHODDEF_voidmem_nop(j_decompress_ptr cinfo)spec. funkce pro JPEGlib - nedela nic
METHODDEF_voidmem_skip_input(j_decompress_ptr cinfo, long n)spec. funkce pro JPEGlib - skip input in buffer (jpeg v pameti)
voidmenu_addmenu(const char *name,const char *def)prida menu s nazvem v name a definici v param
voidmenu_bind_key_add(int c,int player,int action,const char *command)prida keybind do seznamu k aplikovani na aktualni tab v menu a pozici v menu. Zaroven odstrani v menu stary zaznam (je-li)
voidmenu_bind_save_setting()aplikuje zmeny, ktere byly nastavene v bindmenu
voidmenu_destroy()vyskoci z menu a pripadne odalokuje struktury, ktere byly naalokovany
voidmenu_displaybindeditor()zobrazi menu na editaci keybindings
voidmenu_displaysimple(menuitem *m)zobrazi jednoduche menu na obrazovce
voidmenu_displaytabs(int mposx,int mposy,int mwidth)vykresli zalozky na dane pozici menu v prostoru danem jeho sirkou. Na vysku zalozky zaberou 2*fontsizex pixelu, na sirku maximalne mwidth
menuitem *menu_from_def(const char *def)z definice typu caption;prikaz [ | caption;prikaz ....] vytvori menu
menuitem *menu_getbyname(const char *menu)ze seznamu menu vybere menu s danym nazvem a vrati ho
voidmenu_item_addkey(menu_bind *b,int key)prida do aktualni radky v bindmenu klavesu
voidmenu_rectangle(bfloat mposx, bfloat mposy,bfloat menux,bfloat menuy,int tex)vykresli pozadi menu - obdelnik na zadanych souradnicich a zadane velikosti a nastavi orezavani na jeho hranice, pouzije vybranou texturu z menu
voidmenu_scrollbar_h(bfloat x,bfloat y,bfloat xw,bfloat yw,bfloat i,bfloat max,bfloat pct)zobrazi horizontalni scrollbar
(x,y) souradnice praveho horniho rohu
(xw,yw) velikost
i - aktualni hodnota posunuti scrollbaru
max - maximalni posuv scrollbaru (i je mezi 0 a max)
pct - sirka scrollbaru relativni (0..1)
voidmenu_setitem(menuitem *m,char **def)nastavi jeden menuitem dle definice a z posune ukazatel na retezec s definicci na dalsi cast (dalsi polozku menu)
tabs *menu_tabs_create(const char *def,int mult,vp_fn *destr)vytvori system zalozek.
Definice tvaru "Popis1|Popis2|..."
mult - pokud je zalozka se znakem #, tak se zopakuje mult-krat, znak # nahrazen cislem 1..mult, znak # se nesmi vyskytovat vice nez jednou. 0=tahle feature je vypnuta
destr - destruktor na data
voidmenu_tabs_destroy(tabs *t)odalokuje zalozky (tabs) z pameti
voidmenukey_bind(int c)osetri zmacknutou klavesu v bindmenu
voidmenukey_simple(int c)osetri zmacknutou klavesu v menu
bfloatmin_box(bfloat a,bfloat b,bfloat c)minimum z 0,a,b,c,a+b,a+c,b+c,a+b+c - nejmensi vrchol krychle
model *model_addtomanager(model3d *m,const char *name_as)Nahraje model z v pameti do model manageru
intmodel_addvertex(tmpmodel *m,bfloat x1,bfloat y1,bfloat z1,int check_if_already_exist)prida vertex do modelu (pokud tam uz neni), vrati jeho cislo. Cisla tvori posloupnost, pocinaje nulou
tmpmodel *model_begin(void)vytvori docasny (pametove neefektivni, ale rychly) model
voidmodel_calculate_abox(model3d *mo)spocita bounding box modelu
voidmodel_clear(tmpmodel *m)vycisti model, ale neuvolni pamet. dobre pokud chcem hned delat dalsi model
model3d *model_end(tmpmodel *m)vyrobi finalni 3d model z docasneho modelu
voidmodel_face_begin_id(tmpmodel *m, byte r,byte g,byte b,byte alpha,texture *texture1)zacatek facu
voidmodel_face_begin_mat(tmpmodel *m, material *mat)zacatek facu
voidmodel_face_end(tmpmodel *m)konec facu: normala se spocita automaticky
voidmodel_face_end_v(tmpmodel *m,vector normal)konec facu: normala dana vektorem
voidmodel_flush()odstrani z pameti modely co nejsou pouzivany (refcount=0)
voidmodel_free(tmpmodel *m)uvolni model z pameti
voidmodel_move(model3d *mo,bfloat ix,bfloat iy,bfloat iz)presune vsechny vertexy v modelu o (ix,iy,iz) - move
voidmodel_scale(model3d *mo,bfloat ix,bfloat iy,bfloat iz)vynasobi vsechny vertexy v modelu (ix,iy,iz) - scale
model3d *model_txt_load(const char *name)nahrani modelu ve formatu milkshapa ascii
voidmodel_vertex(tmpmodel *m,bfloat tex_x,bfloat tex_y,bfloat x,bfloat y,bfloat z)prida vertex podle souradnic
voidmodel_vertex_num(tmpmodel *m,bfloat tex_x,bfloat tex_y,int vnum)prida vertex podle cisla - nutno nejdriv pridat vertexu cislo pres model_addvertex
voidmodel_vertexv(tmpmodel *m,bfloat tex_x,bfloat tex_y,vertex v)prida vertex (podle souradnic)
voidmodel_vertexvs(tmpmodel *m,bfloat tex_x,bfloat tex_y,vertex v,bfloat scale)prida vertex (podle souradnic, se scalovanim)
AI_API intmove_nothing(object3d *self, bfloat f)dummy funkce (neudela nic)
voidmove_with_collision(object3d *p,bfloat tick_time)presune objekt, s collision detection
intmsqrt(int i)vrati nejmensi kladny integer X, aby platilo i <= X*X
voidnet_accept_object_delete()prijme a zpracuje paket oznamujici smazani objektu
voidnet_accept_object_info()prijme a zpracuje paket posilajici uplne informace o objektu (vc. classname a modellu ...)
voidnet_accept_object_update()prijme a zpracuje paket menici jeden objekt (poloha, rychlost, atd ...)
voidnet_accept_world(int datalen,void *data)prijme a zpracuje seznam idcek objektu tvorici svet. Inteligentne smnaze neexistujici objekty a prida nove (ackoliv nezna jejich pozici a co jsou zac, ty obvykle prichazeji pozdeji v jinem paketu (object_info))
voidnet_add_player(net_con_list *ctx)prida sitoveho klienta do hry
net_con_list *net_add_sock(SOCKET s,socket_type typ,ip_addr ip,ip_port port)prida socket do poolu socketu a zavre pripadna predchozi/shnila/neplatna/nakompatibilni spojeni
voidnet_addobject(object3d *obj)pridani objektu - server posle zpravu o objektu
voidnet_check_servername()zkontroluje servername a pripadne ho upravi (nesmi byt prazdny nebo NULL)
voidnet_checknick()zkontroluje nick a pripadne ho upravi (nesmi byt prazdny nebo NULL)
voidnet_checkstringpacket(game_packet *p)zkotroluje packet typu string, jestli tam jsou rozumna data (a zadne divoke znaky)
voidnet_client()jede tick na klientu
intnet_clientdisconnect(const char *param)odpoji se jakozto client (parametr je reason)
vraci 1 pri uspechu, nebop 0 pokud neni pripojen
voidnet_close(void)konec site
net_con_list *net_connect(ip_addr ip,ip_port port)vytvori pripojeni k pocitaci (ip:port) vraci 0 pri chybe nebo vraci kontext spojeni pri uspechu
voidnet_debug_print_packet(char *info,game_packet *p)vypise informace o prislem paketu na konzoli
char *net_getsockerror()zjisti kod chyby
voidnet_handle_client(net_con_list *c)obslouzi jiz pripojeny socket z klienta na server
voidnet_handle_server_packet_in(pnet_con_list c)obslouzi socket naslouchajici na serverru
voidnet_init(void)inicializace site
net_con_list *net_ip_context(SOCKET s,ip_addr ip,int16 port)pro dany ip/port vrati kontext, pokud kontext neexistuje, vytvori novy
voidnet_killobject(object3d *obj)odebrani objektu - server posle zpravu o objektu
voidnet_killqueue(socket_type typ)uzavre vsechny spojeni daneho typu
intnet_killserver(const char *reason)sestreli server - uzavre vsechny naslouchajici a obsluhovane sockety
vraci 1 pri uspechu, nebop 0 pokud server nebezi
intnet_listen(ip_port port)zacne naslouchat na danem portu. Vraci 0 pri chybe
voidnet_print_connections(socket_type typ,const char *description)vypise informace o konexich daneho typu
voidnet_receive_scoreboard(int datalen,void *data)prijme a zpracuje paket obsahujici score tabulku pro vsechy pripojene hrace
voidnet_remove_player(net_con_list *ctx)odstrani sitoveho klienta ze hry
voidnet_scan(const char *param)proscanuje servery (posle broadcast packet) na danem portu
voidnet_send_object(net_con_list *ctx,object3d *o,int only_update)posle cely objekt, nebo eventuelne jenom update paket
voidnet_send_player_update(net_con_list *ctx,client *c,object3d *shot)posle na sevre svoje zmeny
voidnet_send_playerinfo(net_con_list *ctx,client *c)posla hraciinformace o nem samem
voidnet_send_scoreboard(net_con_list *ctx)posle score po siti
voidnet_send_world(net_con_list *ctx,worldspawn *w)do site posle idcka vsech objektu a pak pro kazdy objekt jeste kompletni init packet
voidnet_sendpacket(net_con_list *c,packet_type pcode,int datalen,const void *data)posle po siti herni paket po danem socketu
voidnet_sendpacket_all(socket_type typ,packet_type pcode,int datalen,const void *data)posle herni paket vsem socketum v seznamu
voidnet_sendpacket_s(net_con_list *c,packet_type pcode,packet *p)posla vykonstruovany paket po siti
voidnet_server()jeden tick na serveru
voidnet_server_chatmessage(const char *nick,const char *msg)posle zpravu msg od nick vsem pripojenym
voidnet_servertick(net_con_list *ctx)posilani zprav ktere nejsou reakci na jine (updaty ze serveru, atd ....)
voidnet_updateobject(object3d *obj)pridani objektu - server posle update objektu
intnet_validate_packet(game_packet *p,int16 packet_len)vraci true, pokud je packet platny (spravna verze, delka, atd ....)
voidnetque_add(object3d *obj,object_netque_action a)prida objekt do fronty objektu k poslani
voidnice_vector(vector *v)zkrasleni vektoru - prodlouzi/zkrati vektor na cela cisla, pokud to lze a pokud je sance ze to pomuze predejit chybam v zaokrouhlovani
_inline_ voidnormalize(vector *v)normalizuje vektor na jednotkovou velikost
_inline_ voidnormalize_p(vector *v)normalizuje vektor na jednotkovou velikost, prvni nenulova souradnice kladna
aa_bboxobject_abox(object3d *o,int is_moved)vrati axis-aligned bounding box daneho objektu
pokud je is_moved!=0, tak vrati bounding box posunuty o pozici objektu
bfloatobject_getpropf(object3d *o,const char *name)z objektu ziska jeho vlastnost jako float
bfloatobject_getpropfd(object3d *o,const char *name,bfloat defvalue)z objektu ziska jeho vlastnost jako float, pokud neexistuje, vrati defvalue
intobject_getpropfv(object3d *o,const char *name,bfloat *ret)z objektu ziska jeho vlastnost jako float, vrati 0 pokud neexistuje
intobject_getpropi(object3d *o,const char *name)z objektu ziska jeho vlastnost jako int
intobject_getpropid(object3d *o,const char *name,int defvalue)z objektu ziska jeho vlastnost jako int, pokud neexistuje, vrati defvalue
voidpacket_add(packet **p,int len,const void *data)prida do paketu data
voidpacket_add_byte(packet **p,char data)prida do paketu byte
voidpacket_add_int(packet **p,int data)prida do paketu int
voidpacket_add_rot(packet **p,rotation v)prida do paketu rotation (s konverzi do singlevectoru)
voidpacket_add_string(packet **p,const char *s)prida do paketu sdring (pascal style)
voidpacket_add_vect(packet **p,vector v)prida do paketu vektor (s konverzi do singlevectoru)
packet *packet_create(int alloc_len)vytvori paket k poslani pres sit
aa_bbox *parse_abox(const char *def)z retezce vyparsuje axis-aligned bounding box
voidparse_classdef(objectclass *oc)z classy, do ktere byla nahrana jenom definice nahraje podle te definice i zbytek. Definici pote smazne
voidplayer_updaterotation(client *c)u daneho klienta updatuje rotaci
intpparse(int *datalen, void **data,int reslen,void *result)packet parse: get data
intpparse_int(int *datalen, void **data,int *result)packet parse: get int
voidprintmat()vezme z OpenGL aktivni matici a vytiskne ji na stdout
size_tprop_size(properties *p)debugovaci funkce na zjisteni kolik mista zabiraji v pameti properties
voidproperties_copy_class_to_object(objectclass *c,object3d *o)zkopiruje properties z classy na konkretni objekt, nektere specialni nastavi
voidproperty_add(properties **p,const char *key,const char *value)prida key=value do properties, zkontroluje jestli tam neni
void *realloc1(void *x,size_t t)prealokuje pamet. Selhani nepovoleno (viz malloc1)
voidregister_bool(const char *name, int *func, int level,int saved,const char *helptext)zaregistruje bool promennou (0,1) pro pouziti na prikazove radce v konzoli. Vola register_special_var
voidregister_cmd(const char *name, cmd_fn *func, int level,const char *helptext)zaregistruje prikaz pro pouziti na prikazove radce v konzoli. Vola register_special_var
voidregister_commands(void)zaregistruje prikazy a promenne do konzole
voidregister_float(const char *name, bfloat *func, int level,int saved,const char *helptext)zaregistruje float promennou (bez omezeni min/max) pro pouziti na prikazove radce v konzoli. Vola register_special_var
voidregister_special_var(const char *vname,int vtype,bfloat minv,bfloat maxv,void *func1,cmd_fn *sfunc,int vlevel,int saved,const char *helptext)zaregistuje promennou/funkci pro pouziti na prikazove radce v konzoli. Nejobecnejsi varianta
voidregister_var(const char *name,int type,bfloat min,bfloat max,void *func,int level,int saved,const char *helptext)zaregistruje promennou pro pouziti na prikazove radce v konzoli. Vola register_special_var
intresolve_ip(const char *name,ip_addr *oip,int16 *oport,int16 default_port)ze jmena(muze obsahovat i port) ziska ip a port (defaultni port je pouzit,
pokud neni jiny specifikovan)
voidscoreboard_setlen(int n_players)nastavi pocet zaznamu ve scorebardu (vcetne realokace/aloikace pameti)
bfloatsgn(bfloat f)funkce sgn(x) - vraci znamenko argumentu
_inline_ bfloatsize2(const vector d)velikost vektoru umocnena na druhou (rychlejsi nez v_size a pro porovnani staci)
voidsplit(char *p,char **p1,char **p2)Z retezce P odskubne prvni (p1) parametr a zbytek (p2).
pozor - originalni retezec je modifikovan (je do nej vlozen jeden NULL znak
voidstr_addc(char *s,char c,size_t maxlen)priplacne k retezci s znak c, pokud by tim neprekrocil delku maxlen
char *str_chop_until(char **def,const char *delim)z retezce vecme cast az po prvni delimiter (libovolny znak z retezce delim)
vrati nove alokovany retezec.
intstr_count(const char *string,char target)vraci pocet znaku "target" v retezci "string"
intstr_endwithi(const char *str,const char *what)vraci true pokud retezec str konci retezcem what (case insensitive)
voidstr_exact(char **s)realokace retezce na tolik, kolik v pameti skutecne zabira
voidstr_free(char *s)odalokace retezce s kontrolou na NULL pointery
char *str_itoa(int n,char *buf)prevedeni cisla na retezec (v desitkove soustave)
char *str_new(size_t chars)alokace noveho retezce v pameti. Naalokuje retexec pro chars znaku
char *str_nreplace(const char *ntemplate,int n)znak # v ntemplate nahradi cislem j a vrati novy retezec
char *str_plus(const char *str1,const char *str2)vrati nove naalokovany retezec, obsahujici druhy retezec prilepeny za prvnim (podobne jako strcat)
voidstr_replace(char *s,char c,char r)nahradi v retezci jeden znak jinym
char *strdup(const char *s)duplikace retezce
intstring_to_key(const char *s)prevede retezec na scan-kod klavesy/mysiho tlacitka
char *strndup(const char *s,int n)vezme prvnich n znaku z retezce s a vrati je v novem naalokovanem retezci
voidsys_unalias(const char *param)smazne alias
voidtex_flush()odstrani z pameti textury co nejsou pouzivany (refcount=0)
GLbooleantex_isresident(texture *t)true pokud je textura v texture pameti
voidtex_list_addtexture(tex_list **m,texture *tex)prida texturu do texturelistu
ai_resulttimer_bomb(AI_TIMER)timer funkce bomby - po daném čase exploduje
ai_resulttimer_explosion(AI_TIMER)timer funkce exploze - zajistí grafické zobrazení výbuchu (poškození se uděluje jinde)
ai_resulttimer_fade(AI_TIMER)po daném čase začne objekt plunyle mizet
ai_resulttimer_nothing(AI_TIMER)na timer nijak nereaguje (dummy funkce)
ai_resulttimer_player(AI_TIMER)timer: pohyb hráče
ai_resulttimer_stone(AI_TIMER)Timer: objekt se nepohybuje vlastní vůlí, ale je strkán, či padá
text_tokentoken_create(void *source,int size)vytvori z danych dat parsovatelny token
inttoken_loadbinary(text_token *t,void *i,int s)nacte z tokenu kus binarnich dat
inttoken_loadfloatb(text_token *t,bfloat *v)nacte z tokenu float (binarni)
inttoken_loadintb(text_token *t,int *i)nacte z tokenu binarni integer
inttoken_loadlstring(text_token *t,char **c)nahraje retezec (delka+znaky) z tokenu
inttoken_loadmodelb(text_token *t,model3d **m2)nahraje binarni model z tokenu
inttoken_loadtexref(text_token *t,texture **c)nahraje referenci na texturu(pripadne celou texturu, je-li treba)
inttoken_loadvectorb(text_token *t,vector *v)nacte z tokenu vektor (binarni)
inttoken_readchar(text_token *t,char c)nacte znak z tokenu a odstrani ho. Vraci 1 pri uspechu, 0 pri chybe (je tam jiny znak, nebo tam neni zadny)
inttoken_readfloat(text_token *t,bfloat *f)nacte z tokenu jeden float
inttoken_readint(text_token *t,int *i)nacte z tokenu jeden integer
inttoken_readkv_sep(text_token *t,char **key,char **value,char separator)ze zacatku tokenu nacte a odstrani zaznam ve formatu key=value.
Misto = lze pouzit i jiny separator
POZOR! dealokovat se musi jenom key, nikdy ne value, nebot to je jeden buffer
char *token_readline(text_token *t)nacte z tokenu jednu neprazdnou radku
text_token *token_readobject(text_token *t)nacte jeden token zacinajici { a koncici na } , dbaje na uroven vnorenych zavorek
inttoken_readplainvector(text_token *t,vector *v)nacte z tokenu jeden vektor, format "x y z"
properties *token_readprop(text_token *t)ze zacatku tokenu nacte a odstrani zaznam ve formatu "key" "value"
char *token_readqstring(text_token *t)nacte retezec v uvozovkach z tokenu
char *token_readstring(text_token *t)nacte retezec z tokenu (znaky az do prvni whitespace nebo konce radky)
inttoken_readvector(text_token *t,vector *v)nacte z tokenu jeden vektor, format "(x y z)"
voidtoken_remove_rest_of_line(text_token *t)preskoci vse v tokenu az do konce radky
voidtoken_skip_trash(text_token *t)preskoci vsechny whitespacy a pokud narazi na komentar, tak i ten
ai_resulttouch_bomb(AI_TOUCH)Dotyk: objekt se sám zničí (používá se u bomb, kde zničení obvykle vyvolá explozi)
AI_API inttouch_nothing(object3d *self,vector v1,vector v2,vector v3,object3d *o)dummy funkce (neudela nic)
ai_resulttouch_nothing(AI_TOUCH)na dotyk nereaguje (dummy funkce)
voidtree_add(tree **t,const char *name,void *val1)prida do stromu polozku se jmenem name a hodnovou val1, pokud je jiz obsazena, neprida nic (a pokud je zapnuty debug tak rovnou fatalne spadne)
inttree_count(tree *t)vrati pocet prvku stromu
inttree_del(tree **t,const char *name)odstrani ze stormu polozku name
1 - polozka byla odstranena
0 - polozka tam nebyla
void *tree_delv(tree **t,const char *name)odstrani ze stormu polozku name a vrati ji (nebo NULL, pokud tam neni)
1 - polozka byla odstranena
0 - polozka tam nebyla
tree *tree_dup(const tree *t)zduplikuje dany strom - vytvori novou kopii
const tree *tree_element(const tree *t,int i)vytahne ze stromu ukazatel na list s prvek s cislem i (i je mezi 0 a (poctem prvku ve stromu -1)
Da se pouzit napr. pro prochazeni cleeho stropu, ackoliv tree_foreach / tree_foreach_p muze byt vhodnejsi
Pokud nastane chyba nebo je prvek mimo rozsah, vrati NULL
voidtree_foreach(tree *t,tree_func *f)zavola funkci na kazdy prvek stromu
voidtree_foreach_p(tree *t,tree_func_p *f,void *param)zavola funkci na kazdy prvek stromu (s extra parametrem)
voidtree_free(tree *t)odalokuje strom z pameti
voidtree_optimize(tree **t)vyvazi strom
void *tree_search(const tree *t,const char *name)prohleda strom jestli obsahuje polozku name a vrati ji, pokud neobsahuje, vraci 0
voidupdate_scoreboard(object3d *you_are)updatuje scoreboard
_inline_ voidv_add(vector *a,const vector b)a=a+b
_inline_ voidv_addf(vector *a,const vector b,bfloat c)a=a+b*c
bfloatv_div(const vector a, const vector b)vydeli jeden vektor druhym. Tise predpoklada, ze vektory jsou linearne zavisle a vraci skala (pomer velikosti)
_inline_ intv_eq(const vector a,const vector b)return (a==b) (tolerance chyby)
_inline_ bfloatv_eq_delta(const vector a,const vector b)return (a==b) vrati nejvetsi rozdil mezi souradnicemi vektoru
_inline_ intv_eq_n(vector a,vector b)return (a==b) (normalized, tolerance chyby )
_inline_ intv_eq_neg(const vector a,const vector b)return (a==(-b)) (tolerance chyby)
_inline_ intv_eq_np(vector a,vector b)return (a==b) (normalized, positive direction,tolerance chyby )
vectorv_mask(vector orig,vector mask,vector new1)
Odmaskovani jistych souradnic vektoru
mask by mela byt mezi 0 a 1 (jednotlive slozky)
pokud je 0, vrati new1, pokud je 1, vrati orig, jinak linearne mezi tim.
Pro kazdou souradnici pracuje zvlast
_inline_ voidv_mul(vector *a,bfloat c)a=a*c
_inline_ bfloatv_muls(const vector a,const vector b)return a*b (scalar)
_inline_ voidv_mulv2(vector *result,const vector a,const vector b)result:=a*b (vector)
_inline_ vectorv_mulv(const vector a,const vector b)return a*b (vector)
_inline_ voidv_neg(vector *result,const vector a)result=-a
_inline_ vectorv_negv(const vector a)return -a
_inline_ vectorv_plus(const vector a,const vector b)return a+b
_inline_ vectorv_plusf(const vector a,const vector b,bfloat f)return a+b*c
_inline_ vectorv_sub(const vector a,const vector b)return a-b
_inline_ voidv_sum1f(vector *result,const vector a,bfloat a1)result:=a*a1
_inline_ voidv_sum2(vector *result,const vector a,const vector b)result=a+b
_inline_ voidv_sum2f(vector *result,const vector a,bfloat a1,const vector b,bfloat b1)result:=a*a1+b*b1
_inline_ voidv_sum3(vector *result,const vector a,const vector b,const vector c)result=a+b+c
_inline_ voidv_sum4(vector *result,const vector a,const vector b,const vector c,const vector d)result=a+b+c+d
_inline_ vectorvect(bfloat x,bfloat y,bfloat z)vektor ze tri cisel
ai_resultwall_destroy(AI_DESTROY)objekt (zeď) se rozpadne na jednotlivé cihličky
object3d *world_add_empty_object(worldspawn *w)prida jeden objekt do seznamu objektu a inicializuje ho. Je-li mala kapacita, zvetsi ji. Vrati ukazatel na pridany objekt
object3d *world_add_object_from(worldspawn *w,object3d *src)vytvori novy objekt, umisteny pocatkem v objektu src
voidworld_collision_free(worldspawn *w)pred znicenim sveta uvolni kolizni data
voidworld_collision_init(worldspawn *w)po nahrani sveta spocte/nahraje kolizni data
voidworld_destroyobject(object3d *o)zlikviduje objekt v koliznim systemu, ale necha ho dosud v internich strukturach
voidworld_destroyobjectlist(objectlist o)zlikviduje objekt v koliznim systemu, ale necha ho dosud v internich strukturach
bfloatworld_distance(object3d *o,vector from)spocte vzdalenost od objektu, bere v uvahu i bounding box a tak ... (ne jenom stred objektu) a vrati ji jako cislo
vectorworld_distance_v(object3d *o,vector from)spocte vzdalenost od objektu, bere v uvahu i bounding box a tak ... (ne jenom stred objektu) a vrati ji jako vektor
worldspawn *world_empty(int obj)vytvori prazdny svet a naalokuje misto pro obj dynamickych objektu
voidworld_kill_object(worldspawn *w,object3d *who)odstrani ze sveta jeden objekt
voidworld_updateobject(worldspawn *w,object3d *o)updatuje objekt do kolizniho systemu - vola se po externi zmene objektu (pozice, rotace, atd ....)
nebo pri vytvoreni
voidworld_updateobjectlist(worldspawn *w,objectlist o)updatuje seznam objektu do kolizniho systemu
voidwriteln(char *s)vypise retezec a odradkuje
voidwstream_close(filebuffer *f)uzavre soubor, odalokuje data
voidwstream_flush(filebuffer *f)vyprazdni buffer do souboru
filebuffer *wstream_open2(const char *dir,const char *name)otevre soubor pro zapisovani a naalokuje buffer
filebuffer *wstream_open(const char *name)otevre soubor pro zapisovani a naalokuje buffer
voidwstream_save(filebuffer *f,const void *data,int size)ulozi data do bufferu, pri zaplneni buffer protlaci do souboru
voidwstream_savefloat(filebuffer *f,bfloat ff)ulozi float do souboru (buffer)
voidwstream_saveint(filebuffer *f,int i)ulozi integer do souboru (buffer)
voidwstream_savelstring(filebuffer *f,const char *s)ulozi delku retezce (integer) a retezec (bez ukoncovaci nuly) do souboru (buffer)
voidwstream_savestring(filebuffer *f,const char *s)ulozi retezec (bez ukoncovaci nuly) do souboru (buffer)
voidwstream_savevector(filebuffer *f,vector v)ulozi vector do souboru (buffer)

Dokumentace z 12.09.2003 18:06:39