DONE:
- blood: source should stay on the mesh, i.e. move with it
- remove decals on characters
- ricochets => seulement quand le decal a pas ete validé (ex sur doors)
- remove vertex normals from VB
- impact delay (frame index after which we can register hits)
- simulate multiple steps at the same time in AI for combos
- for some motions "hand" isn't enough => arm is better.
- check that we do collision flag before state machine update!
- only play footsteps sound from player!! => or actually play all of them = f(distance)
- aiming has to be different from head pitch... easier...
- triggers only for main char! cf doors...
- bug: pour l'instant tous les persos peuvent tirer dès que konoko a une arme!
- shattered glass
- voir pkoi on peut pas déclencher le "jump back" apres body proj à tout moment
=> parce que la null transition est trouvée tout de suite, avant l'impact
=> try to lazy find it ? doesn't work since for "blend direct" it must happen immediately, not at the end of previous motion
- les portes qui s'ouvrent doivent le faire completement
- transitions supplémentaires pour pas bloquer en crouch
- modifiers: left/right FW, right/left BK, *keep same value*, reset value
- motion modifiers on motion cells pour diagonale
- sometimes the Fw-Fw fast run is *really* fast (too fast => bug)
- camera bug when the head is in a door! => use offset ?
- revoir la logique "per character" => là on peut pas frapper 2 enemis en même temps
- virtual boxes
- reset head yaw when selecting new character
- per character vertical offset ?
- camera's "shadow caster" when we shoot ?
- argh sounds
- combat collisions should only be registered for particular body parts, for each move
- tourner vers player
- for some reasons combopp doesn't play a sound
- render active body parts for impact (touched ones AND active ones on player)
- register a hit / anim ? i.e. si on joue 1 anim de coup, pas possible d'enregistrer 2 hits
- hit sound => pas le jouer en fonction de l'anim mais vraiment en fonction de la CD
- char should slide on other chars as well => add virtual box around opponents & handle it in char ctrl as well.
- need culling bit / triangle in collisions. Not doing backface culling is not an option for accuracy...
- voir pkoi now le perso peut pas aller sous la rampe => parce qu'il y a un mur invisible!
- free doors: now we don't collide with them
- doors should be free objects
- tir passe à travers certaines vitres transparentes => voir culling
- decals on glass: sometimes drawn on the wrong side (double sided materials)
- revoir la position du gunray
- decal sur weapon!! => needs a way to discard meshes from raycast
=> i.e. not only do something different on impact, here the gun *that fires the shot* gets hit !!!
- now that render culling has been fixed, camera feeler doesn't go through glasses anymore
- other characters are whacked!
- fix "angle between characters"
- isolate konoko app to run in fullscreen
- two different box sizes for horiz & vertical motions ?
- mesh anaysis & face detach for doors!
- correct gravity makes it painful to climb stairs
- portes qui s'ouvrent
- engine: check material sharing when we modify a material
- "force position mode" is wrong since it bypasses the small internals timesteps => big tunnelling effect and physics = f(FPS) indeed
	- sinking due to force-position mode
- message box on invalid motion names
- check weapons are "free" meshes in the pruner (they're not)
- CCD pretty much necessary...
- weapon class, fire sound
- lag: en weapon mode quand on tourne la caméra tout en pressant Q ou D
- recul après shots
- est-ce que Konoko peut pousser les NPC en leur courant dessus dans Oni ? => non
- XXXStart to crouch motions => easy to add following the FW example
- hide character quand on zoome trop dessus
- offset pour GetFocusPt() skeleton
- fog
- on peut plus tourner autour de konoko en pause
- focus pt should be fixed to avoid camera jerkiness
- peut-on mixer motion/transitions dans le script? (plus clair ptet) => oui, on peut
- unifier blend_direct / delayed ?
- fix "-1" et "-2" dans le SMC
- voir blend_direct qui prend la frame courante => par défaut
- force du coup dans le script du perso, peut servir de bool si force=0
- don't force "french keys"
- console: we can start with the simple renderer "print" as a first text renderer (which isn't really the important part)
- teleport command => character to current camera place
- non case sensitive console
- character controller fails with big computer tower thing
- Don't collide with kine after it's a ragdoll
- fast run is better in "script mode"...... see how to modify it to get the same results
- spawn weapons
- remove decals on weapons
- use virtual box to drop weapon on floor
- decals sur moving door => bug => remove decals from dynamic objects ?? => RMF_STATIC used in decal code but no exactly "static"
- random rotation when spawned
- get up when click
- more chaos for shells particles
- revoir shift+kick et shift+punch
- check weird crouch punch fw => actually figure out that offset thing
- rotate pas quand t'es à terre, bourrin!
- pas changer l'orientation du perso en vol! => needs per-motion flight interval
- jitter quand le perso saute en slow motion...
- characters beeing pushed tend to jitter (maybe same bug)
- in slow motion the chars are still thrown away big time when kicked - not at normal speed...
- comment désactiver les collisions Konoko/NPC au moment des projections ? => pas besoin, replay canned anim!
- throw: juste des canned anims, et on vérifie que les conditions sont remplies avant de les jouer
- throw: disable cd anyway, and also target lock
- Griffin falls through ground in default test scene. Konoko as well against the ramp!
- input thread
- IsKeyPressed() => obviously misses keys when framerate is low => check DI
- bug: billboard disappear when shadows ON
- virer complètement le perso du moteur physique ??
- une box en plus dans un fichier à part, pour des merges faciles ?
- pb de l'anim de hit head jouée 2 fois
- pb quand on jumpe-kick avec feet-to-ground, ça semble reculer le perso
- quand on frappe un idle1, il doit passer en idle2
- blur: comment l'activer mesh par mesh ?
- revoir validity frames des coups de coude
- offset track doesn't work
- define each character with a text file
- try to put a lot of enemies here to check the speed
- devrait se relever quand player à terre
- tous les sons devraient etre f(distance)
- per character sounds
- key to knockout all enemies
- balayette enchainées => apparemment transition vers meme cell marche pas trop => use two cells
- coups quand le player est à terre (i.e. activate hits for those)
- anim pickup
- Frappe à terre genre King Of Fighters (STRCOMpunch_low.zb2)
- multiple ways to getup
- current life
- power-ups
- knockout sounds
- There's more blood on faster pcs?
- revoir #particles = f(slow mo)
- revoir rota matrix pour shaders
- voir pkoi render target texture creation fails => maybe just an NVIDIA thing!
- bug when attach weapon
- bug: peut pas prendre 2 guns avec 2 persos
- bug: pas choper l'arme dans la main du voisin!!
- decals under powerups
- needs something around the gun else we don't see it well
- when killed, should detach weapon
- allow sleeping objects => does that work?
- align objects
- group objects
- optimize materials/textures
- render attribs disable fog => yeah, so what?
- MB: closing poly between quads, #segments = f(distance)
- different weapon effects!
- nice effect: move the camera back when firing
- spawn gun on glass doesn't work for target
- cell/ammo sounds
- check why empty flag marche pas
- billboards on hits (cf oni)
- bug: sometimes we pickup stuff twice
- weird bug when controlling konoko + motion modifiers => keeps running. Doesn't happen with Griffin
- revoir steam particles
- attribution du cookie: pas prendre en compte les persos "down" ou "hit"
- isolate char/char interaction
- motion modifiers: change the target motion cell, so that we don't have to duplicate all of them...
- définir les modifiers pour chaque motion, plutot que pour chaque transition?
Ex: Modifier motion modified0 modified1 ...
- weapon switch seems bugged
- disparition des target FX en fade
- unregisterFX is buggued!!! invalidates handles of other target FX, for example
- particles on kick/punch crates
- reste bloqué en mouvement de temps en temps (left, right, back)=> meme pb que celui que j'avais avant avec FW
- autocomplete in console => enum all cmds, assign score, get closest.
- classe "weapon" ? cf oni: dispersion, force du recul, rate, particles, billboard, etc
- lasers: must do the raycasts at runtime!
- support PS2 controller ?
- investigate slowdown with PS => 3000+ sources!
- trace bullets...
- those boxes scream for some physics => especially in the warehouse
- body proj: disable CD...
- bug: sometimes char/char CD remains disabled
- "dash" to enable second crouch motion
- delete lost bullets
- modifier pour crouch up => i.e. on veut un modifier supplémentaire à balancer quand aucune touche n'est pressée, ou kkch comme ça
=> encore mieux, des modifiers différents pour key up/down => et support pour "-"
- MB seems busted => because of bullet manager => speed too low, only renders last part of the trail
- recycle powerups
- tape pas sur ton pote, bourrin!
- reste pas en idle de non-combat devant l'adversaire!
- modifier: idle combat/normal
- seems to be jittering a bit (cf crouch). Find out why.
- on screen combo messages ("3 hits combo")
- maybe it's enough to check the boxes are touching to register a hit?? => indeed...
- fast combos? (faster replay speed) => "speed" command
- check why fade doesn't work => because built-in scene fade is only backward
- tete konoko sur corps barabas
- bug quand konoko a un phaser en main et muro fait un crescent moon dessus !
- special recover code when character boxes overlap
- group game parameters in a single file/struct
- add max correction vector when boxes overlap (to avoid big corrections)
- liste des fonts dispos sur la machine
- decals: no straight line on the wall...
- recycle virtual boxes
- mettre SnapToGround/etc in RMHelper
- check dx9 particle sample
- favorize moves based on previous move (to favorize combos) => old idea, not really good
- can kill glass / not => put that in impact string
- console command pour frequency ("rough justice"?)
- multiple MB instances
- hide weapon en 1st person ? => ben non, ce serait stupide
- particles: impact callback
- particles: friction
- particle collisions
- Roulades constantes en laissant SHIFT appuyé (modifier??) => actually no, it's better with current behaviour
- manque de particles (trails, dust, blood...)
- expose pruning flags 
- don't collide with invisible collision meshes?
- share sounds (enemies...)
- bug: distance à calculer au sol pour waypoints
- shell sounds when hit ground
- trouver un moyen pour projeter les persos violemment après certains kicks (à la DOA2) => target cell override
- button sounds
- check virtual boxes on weapon detach
- plane to catch falling stuff
- check "link motion" bug => simply because we link from one motion graph to another + motions were not shared
- NINCOMthrow_bk_tgt.zb2 pour vertical explosion
- icone pour lock on target
- don't register hits when touching player getting up. Else produces bad looking transitions (too late anims)
- blue hits instead of complete collision filtering
- more AI debug info: attack cookies, is surprised, etc
- give robot a greater speed
- *always* have death sound (no random)
- head follow player before body..
- feindre sa mort pour attirer un garde => especially useful when he has a gun
- no flash when *they* fire + no camera jitter
- SetScale dans le script
- stupid bug: clones not reported from pruners, but raycast still works with them ?! => because collision flag was read from the master...
- hierarchical AI
- run an "always ran" func before microthread => similar to current head turning code. That's quite a powerful thing..
- tourne pas la tete si t'as jamais vu l'ennemi, et reste pas à terre par la suite
- check why crouchwalk2 doesn't work
- bug en hard mode quand le nc sort son flingue (joue l'anim plusieurs fois)
- AI: delay between sortie gun & fire coz of waiting
- bug => AI remains in "fallen" mode because visibility test fails because head is in wall !!!
- MAX: export doors, glass, lasers, crates, weapons, powerups
- console activate sound
- lasers in level
- ground quad on oblique surface...
- bug when just hiting a patrolling guy once in the back => he goes back to patrolling
- fix physics with instances
- when killed by laser while jumping, doesn't fall on ground
- apparently an NPC can see us through walls when we're close to them ?!
- stop shooting if can't see or reach player
- continue/end game
- drop weapon when touched by weapon
- need raycast test pour pas locker un gars derriere un mur
- bug quand on passe sous les lasers, parfois
- inventory sounds
- track renderer->mRS series
- close window on mouse up to avoid unwanted motions
- refaire tab complete for console
- bug: "3" crates don't work with portals => coz never added to a region (ID is fine though)
- target lock bitmap => rip from nightshade screenshot
- remove texture hardcoded paths in level before release!!!!
- pas de sang sur le robot! => étincelles à la place
- inventory à la MGS2: disappear if we don't press the key
- we can use the player & console cmds to record known AI paths...   => now better to just use MAX
	- start path
	- create waypoint
	- end path
- bug: "walk" pas dispo quand le perso est en getup => va direct sur run
- check sentinel pruner
- sentinel recoil when fire
- sentinel limit angles
- make texts work in all resolutions!
- bug du first crate
- particles = effects, already culled ?? => nope
- portals: on peut y foutre juste les objets dynamiques/etc (!=level), ce serait déjà bien
- cartons/meshes à exploser comme dans nightshade => bonus inside => balance sur ennemi ou explose en fonction du coup
- shield sound
- activate stuff:
	- tab to select item menu
	- mouse wheel or keys to navigate
	- tab to cancel, mouse button/punch/kick to activate
- shield marche pas avec laserwall
- shield: use sphere for collision model
- debug mode: why sentinels not rendered correctly?
- why laser/shield don't interact?
- define "void position" in level...
- use yellow door quads as portals ??? => now defined in MAX
- texte blende pas correctement sur lasers
- implementer setrendertarget dx9
- there's a crash when the turret fires and misses us sometimes => seems like a crash in Opcode, malloc(88) returns 0 ??
- when touched by a turret laser, should envelop konoko with red glow. Maybe do all-style disintegration too :)
- glow: render bug because there are 16 lights in the scene
- double saut arriere: quand on "dash" en arriere ?
- turret/sentinels hits => missing front/back
- voir possible ZOE motions => use Mukade ?
- faudrait revoir les transitions runstart->runstop
- don't reset combo counter on all motions => or use timer as in PN03 (or Nightshade, actually)
- si le simple pistol fait tomber le npc direct, le MB semble pas aussi puissant que normalement
- HDR lighting => at least fake HDR
- les mvts d'esquive dans Oni donnent naissance à des hits bleus => pas de coup possible dessus
- put a callback on menu entries
- pb with showcursor (stays visible sometimes) => should have been fixed
- inventory type in menu
- attaques au sol:
	- only special moves can hit fallen AIs
	- AI getup quickly after hit
	- AI attack with special moves when player fallen
- overlay: on doit afficher la console window après les gauges
- move all params in gK to GameParams
- console sound doesn't work with portal stuff
- fix weird unbreakable glass => actually broken but still rendered => hiden flag not taken into account in portals
- fight music management
- fullscreen motion blur thing
- metal hit sound when kicking sentinels
- invisible: do predator effect ?
- invisible & weird clipped polys
- invisible not taken into account in AI (only global one)
- cursor issue with gameover panel, not console => actually bug because we keep calling it each frame
- fight music issue when invisible => pb when we kill a guy that wasn't aware of us => shouldn't decrease counter
- invis: pb when we render effects twice => changes appearance sometimes
- PS not glowing
- invis sound
- for some reason the death effect doesn't always start ?
- issue with non-rendered particles
- per-room ambient sound
- big glowing monitors - render normal pic + glowing(pic * 0.1) ?
- slomodeath always for player
- sound when slowmokick
- fade ambient sound => also IN
- non glowing trail => ou plus petite
- disable menu when final fade
- consoles in MAX..
- bug when activating console in fire mode
- bug when final attack dans les burnes
- BUG IN INVENTORY While running & pressing tab
- onscreen messages near console, like "press ctrl to activate"
- fix ps in glass
- change screenquad => + 4/5 fps => we can actually define that in the INI file
- dx9full using GL code
- fucking dx9 fullscreen
- fix position CTRL msg with other resolution => it's actually the same bug as the DX9 fs one with consoles
- vertical limit to lock ?? or use manhattan distance ? => now uses tweaked dist computation
- sound when laserwall hits shield
- pre-load shaders & stuff
- joue musique quand combat commence
- hot plug du nouveau script
- JUNE 2005 RELEASE

- use the scancodes nonetheless, else it still won't work on US keyboards
- input update should happen in "new frame" callback
- check no crash when fmod not present
- set default keys
- broken inventory => because of new input keys
- raycast bug => because of ray-sphere "fix"
- how many raycasts/frame?
- debug rendering foireux (gunray? camera sensor?) => zbuffer nické, disable effects/glow in KonokoPayne.cpp
- title screen, redefine keys
- save collision structures to disk
- peut pas accéder a une console 2 fois ?? => c'est fait exprès! Voir mCanActivate in KonokoConsole.cpp
- bug: fw + crouch => very fast transition => because of IdleTmpToIdle
- remove red gunray when fire
- optim load zcb
- check geom epsilon opcode
- make sure there's no weird effect when glare/bloom is off
- STRIKEknockdown2.zb2 => with rotation
- rotate crosshair like the shield?
- rotating target lock
- Fix bug when NPC become aware of invisible player (after a hit)
- invisible: utiliser current distance to target instead of target dist...
- laser: attention à la création des blood src = f(framerate)
- particles in laser/shield are framerate dep (use slowmotion => obvious)
- check AI passe en aware quand on frappe un npc dans le dos une seule fois => no, it doesn't => now ok
- record sentinel rays that passed and draw them
- escape sounds
- GetCommand() is called all the time when we press a key!!!
- "GetCommand" => disable CF_ACCELERATORS for game control mode ?
- optimize Skeleton::
			Local::ComputePR(mGlobalPR[GetBone(i)->mLocalID], GetBone(i), this);
(remove func call)
- turret: check why it sometimes changes direction while it shouldn't
- blood on/off
- put "laser portal object" in portals, use timestamp to mark as visible, only render if ok
- don't render glow meshes if glow is disabled
- lasers & cie in portals => y compris le laser wall lui meme! => le faire en RMEffect ?
- fix console mViewBottom
- impact orange lines => delay
- shaking camera
- laser wall in PE ?
- oni trainer: check whether anim name is available => yes!
- clamp size of rendered laser lines (turrets)
- check particles motion is indep framerate (gunfire hit particles on shield)
- react to sound:
	- register character with each sound
	- put sound volume in interaction map
- move nx libs to ice dir
- fallen foot anim for balayette
- koncom_knockdown_foot_xx
- flag invincible enemies
- check why sometimes AI stand in front of us without moving => // Too close to run, not close enough to attack/avoid attacks
- AI: don't blindly run in laser walls!
- AI: ramasse un flingue
- if NPC can pick up weapons, can he also pick up ammo ? => no, that would really be painful for gameplay
- npc: MB: no riffle idle ?
- gun: fix delay on reticle display
- desync gunray / weapon. Gun update appelé avant character update?
- check F1 / F2 not working anymore => because of "RealUpdate" ? => yes
- AI_Fire bug because of modifiers!!!!!!!!!
- AI reste bloquée de tps en tps...... => AI printf debug func => cycle AI_Waiting / AI_LookForWeapon => also AI_Fire
- check #free objects (*100 raycasts!)
- use loose octree => expected world box is not set
- use octree to speed up raycast?
- in crouch mode we can't rotate the character (just the camera) => because crouch_idle doesn't loop => because bug, loop should be in MotionCell
- camera: rigid link ou non
- can an AI get a powerup if it's on a weapon?? => nope, not anymore.
- AI: don't go for a weapon if another NPC is already doing it
- AI: comment etre sur qu'on va bien s'arreter sur l'arme ? => force weapon grab
- AI: pourquoi ils tirent pas directement ? => AI_Waiting => now skipped
- crosshair highlight when on target
- profiler seems busted
- bug lors du premier tir, qui part d'une position bizarre => because of "world_target" in AI_Fire
- CCT bugfix from Manu actually crashes
- crash with manu's fix: maybe just because "Adj" was null and the tris not updated or something ??
- udword indexTry2 = C.mIndex + TM->mIndexWorldTriangles; => assert index < NbTris in sweep test
- AllowedDelay is busted.
- allowed delay for events => doesn't seem to work
- get back optim tiwak (inlines, dynamic pruner, etc)
- lock: foutre un delai pour pas relocker tout de suite sur un autre enemi ?
- when we kick a npc with a gun, reset its arm angles...
- GetFocusPoint() sucks
- static alloc StateMachineEvent in EventStack. Move EventStack to own file?
- PE: start run only if PE success
- PE: fails when konoko close to wall => use closest pt
- PE: agent = dynamic obstacle
- shot in back=>doesn't play correct anim
- find sharable textures & opc
- new CCT: char doesn't stop after a jump fw => probably bad CD flags returned
- stats:
	- number of raycasts
	- number of pathfind queries
	- number of CCT queries
- optimize update virtual boxes
- laser ray / autolock => use real raycast
- NPC fire accuracy = (difficulty level)
- runtime selection difficulty level
- revoir reticles MB
- runtime difficulty selection => make sure all params are updated!
- new reticles in MAX ?
- GUN: delay before firing again when char gets up
- jump/impulse different en slowmo / normal
- PE: check shapes are released when necessary
- AI: remove dead characters from PE obstacles
- AI: field of view for NPCs
- profile skeleton updates => SkeletonUpdate commande
- NPCs don't move their head up when firing at player => reuse turret code?
- pas toujours EVENT_HIT_HEAD quand hit by fire / sentinels / etc!!
- npc se tourne direct vers nous (front) après un coup back! Mais pas quand AI disabled
- BUG: coups de coude: persos dégagés dans le mauvais sens
- refactor EVENT_KNOCKDOWN_BACK
- AI: pas de waiting en fallen ?
- coup "balayette" à revoir => pas ok si npc est déjà à terre!
- BUG: quand le perso est fallen sur le ventre et qu'on fait une balayette, il se releve direct
- AI: getup immediately quand touché back foot when fallen. Why ?
- revoir AI disable: per-enemy, and don't keep them running
- laserwall: can't get down with combokkkk ? => probably because body parts are outside the bbox?
- BUG when jumping and immediately blocked => keep "jump" pressed to repro bug
- bug when kicked while having a MB => blocked
- console comand to setup vertical offset
- check crosshair pics frm Oni. Where? => doesn't matter, I made new ones
- normal hits don't depend on front/back ?
- BUG: can't pickup datapads ? => new CCT
- Look for weapon: what if the player gets the weapon first ? => bug!
- BUG: can't pick up weapon when a character was going for it and died ?
- pickup while crouch
- coup FW Punch pas mal comme début de combo. Enchainer avec un kick fluide?
- BUG: can't pickup crouch a powerup, and then can't pickup anything
- BUG: peut pas sauter quand recule en idle2
- first room ambient sound doesn't start
- THROW:  small scene to test them, 1 player, 1 NPC => developer test scene
- CCT: consoles => no interaction between different kinds of CCT
- ENGINE: reset portal engine
- shut down ambient sound when back to menu!
- quand door descend et remonte sur un dead, il reste coincé! => maintenant descend plus sur dead
- CCT: characters still use boxes
- CCT: chars should use capsules in new CCT (i.e. NPCS)
- CCT: on peut pousser les NPCs car le "fixup" utilise encore des boxes...
- better impact effect for MB
- blood decals: not on walls but ejected as particles! => blood billboards => blood effect 2
- debris: heavier
- debris: no chaos pos, chaos dir
- debris: smaller on screen
- debris: stop rotating on impact
- BUG when jumping and immediately blocked => land event not detected => seems ok now
- fight music sometimes stops when too much sounds => shield in laser for ex
- punch lowa => lowb
- LOCK: don't lock enemies you don't see ?! => avoid big camera motions => game params option
- LOCK: si on disable le lock dans le dos, ça regle le pb quand on dépasse le gars => game params option
- opc models not in dumped rsc?
- dégage le mouvement naze run + punch
- muzzle flash bcp trop gros avec le glow
- fout un powerup en hauteur dans la salle 1
- remove jump in body projection (now that we have a real jump)
- fade bullet particles
- debris disparaissent sans fade
- LOCK: during lock kick hit bodies CD should be disabled
- project enemies on bodyproj hit
- peut plus pousser les crates
- per motion vertical offset
- JANUARY 2006 release

- added more rows for console, to see all results from cmdlist
- removed startup message boxes
- added new test level for multiple AIs
- FLEXPORTER: export correct UVs when using planar mapping/etc => no need, use a YV generator instead
- SOUND: Dégager ambient sound quand fight music
- ENGINE: disable "no camera" and "pause" messages
- react to gun sound
- "resurrect" command now resurrects all dead AIs
- SOUND: when fight music stops, sometimes the ambient doesn't restart
- SOUND: fix bug fade ambient when quickly moving from one room to the next
- AI: check why the "walk AI" transitions don't work => because of modifiers
- fixed crash on crate deletion
- check why there's a slowdown when we explode a crate => just draw particle clusters and see...some particles are probably created below the
  ground since the crate penetrates it a bit.
- the #lightnings = f(framerate)...
- AI: quand à terre et on se cache, devrait passer en "search mode"
- AI: l'ai en invisible est un peu nase
- AI: ai fallen doesn't getup when invis
- AI: if we disappear when a guy is fallen, why does he know where we are and chase us ?
- PE: crash in PE if we put a character in the last room ???? => strange, seems fixed now
- glass: group close particles in same clusters at creation time!!
  For example generate all particles ahead of time and look them up in CreateParticles call, or something.
- JANUARY 2006 upload 3

- crate rotation pas bonne
- bug when jumping and touching stuff (try the glass), the character suddenly goes down
- camera mode: fix it & expose it
- should the camera always point at Konoko's head ? It's not like this in Oni (cf rising fury punch) => well, use the other camera mode
- JANUARY 2006 upload 4

- CCT: reactiver optim "skip extrusion" => solves the "blocked into ramp" bug!
- ENGINE: random number generator: pas si random que ça avec un seul enemi => always same ground attack!
- Bug: when head goes through wall and mesh moves outside octree => only without portals
- when body parts disappear we can't fire on them
- position of UpdatePlayer: is the effect only seen next frame?
- camera is updated before NPcs' positions. Seems wrong.
- check console bug when just keeping keypressed for a while
- lock code in dedicated func
- check FlyingStuff02
- texture matrix already stored in materials!
- ENGINE: support same texture with different texture matrices...
- CCT: render char volumes => one frame delay
- *without* fat tris in character controller, the char can still go through the wall downwards, sometimes
=> actually even with fat triangles, it seems...
- oni lensflares on lights => glowing quads are better
- disable screenquad, backcolor = hc blue (or no screen clear?)
- replace placeholders with normal sentinel mesh
- sentinels: do they break glass? => now they do
- put rotation filter on sentinels
- sentinels: desync motions
- sentinels: need another filter on pitch
- sentinels: bug: when we lock-kick to a first one, then it locks again another one, the character "jumps" a bit
- montée des escaliers devrait etre aussi smooth que la descente (inverse gravity pour passer le step) ====> just use capsules
- AI: when npc is on a higher platform but "close", it fights instead of chasing, which looks stupid
- AI: don't fire on your friends!!
- AI: ai repasse pas en suspicious when we select "invisible". Stays there doing nothing?
- AI: suspicious loop: turn head left/right
- leaks in RegOpenKeyEx
- CCT: first console foire => overlap swept capsule/user box => d=0 => stopped...
- CCT: with capsules, double sided issue when running into door => solved when discarding culling in SphereVsTriangle sweep test
- FIGHT: coups de coude: collision recover used too soon => seems ok with capsule CCT!
- FIGHT: combo après le jewel hit ou on frappe de haut vers bas et on écrase le gars ?
- SOUND: check weird sound at the end of a run left+kick or run left+punch motion
- crash in multiple AI test
- "don't fire" doesn't work anymore
- glowing door locks
- DOORS: lock some doors
- render door locks red/green
- when we exit the console text, we punch again (???)
- "press CTRL to..." => depends on actual keys
- missing sound when flip back + crescent moon sound
- MOTION: jump kicks & punchs
- crescent moon sound
- LOCK: vertical limit to lock ?
- LOCK: disable lock when limit is crossed ?
- LOCK: lock tweaked dist: favorize horizontal dist ?
- jump: killed when falls from too high
- SOUND: remove sound in body projection2 transition
- killkick sound
- stop jump/kick on collisions ? instead of predetermined length...   => I think it's done now, right ?
- BUG: can't die while jumping
- sentinels: fix initial poses
- bug: can lock jump to second sentinel directly?? => not with vertical limit
- FEBRUARY 2006 upload

- select random visibility point on player? => actually loop over bones
- crouchkickfw3 peut pas toucher un ennemi à terre?? => because of missing FALLEN flag in motion graph
- again there's a delay between the volume render and the gfx
- en slowmo, coup de coudes font monter l'adversaire!!!!!!!! => because of CCT up pass for NPC
- when doing "one frame", why are the translations disabled ? => because "one frame" mode doesn't disable the "pause" anyway......
- POWERUP: size of virtual boxes must be increased vertically, for slopes => doesn't seem to matter anymore with capsules
- why the hell can't we export a test plane in the main scene ????
	It seems there's a bug in the exporter or importer: => happens because one of the MAX meshes had 0 faces & 0 verts. Seems to break the loader!
- amortisseur pour auto up motion => introduce desync between cd box (discontinous) and rendering (continuous) => not needed with capsules
- fixed "lost last frame" in anims
- arbitrary orientation for consoles
- CHECK: Why did we comment this ? ====> probably because with this the dead chars stop falling, cf laser wall
	// Skip dead characters
	// ### dead issue
	//	if(kc->IsDead())	return 0;
- laser color in script
- THROW: pos error throw: juste because char-char overlap pdt quelques frames? => shouldn't be possible now, since we disable
CD when mProjection is true.
- PORTALS: use last room when out of world, instead of dangerous "render all"
- THROW: why can we still do the forward punch when testing the throws?
=> because the throw is canceled, because the throw transition for the player is not found, because the active motion cell is still
"idle" instead of "run start" (I think). It doesn't matter for the fw punch because the event stays in the queue and starts as soon
as we reach runstart (I think)
- bug in script update: change from sneak attack to back breaker, update script, target anim not changed!
=> that's probably just because we update the player's script, but not the NPC's script!
- THROW: desired *offset*, not just distance
- THROW: Invincible pendant un throw ? Else can get down but the throw target anim still plays. Should ideally be invicinble just for a couple of frames
- THROW: too difficult to pull off in hard mode
- THROW: BUG: position fix not correct when starting from "runstart" with blending time != 0 ......
- THROW: idea: add offset vector from player to the one from target, for the duration of the throw
- THROW: pas de transition pour les NPC => throw target?? => because we don't cancel the throw during the test => multiple events
- THROW: multiple hits / anim
- THROW: multiple hits => don't hit again when dead after first hit
- sounds for throws
- revoir crouch walk => manque une trans pour arreter le mouvement initial
- In Oni we can do the rising fury by just pressing crouch lightly, it doesn't do the full crouch move
	=> needs crouch start, same as shift+punch... => not enough! But doesn't matter, we don't care about this small difference.
- loop fw/bw => also motion force add/sub => or maybe try to use position table (offset2) in TRAM chunk => that's BS
- THROW: draw distance value (debug)
- THROW: console command to disable distance test
- THROW: running lariat side attack (with feet)
- THROW: needs orientation culling
- FIGHT: BUG: collision coups pas détectée (coups de coude, etc) => quand on a joué avec le NPC et il a un shield invisible!
- GUN: give weapons in character script or in max user props, not automatically
- THROW: bug with replayspeed != 1
- THROW: collision issues when other NPCS overlap throwed/thrower
- THROW: projected npcs become weapons... hmmm.... how?
- muro death sounds
- THROW: BUG: throw desynchro si un des persos à une speed différente!!!
- particles not stable on ground!! => très visible avec un slow framerate (enable shadows)
- crouch corridors
- "crouch volumes" => only when walking slowly
- bad surprised sound après un back throw
- THROW: data driven desired offset => extra command not in IceCharacter, cf sound command?
- crash when reload scripts?
- AI: getup attacks for NPCS
- should lose their guns after a throw => actually if they have guns we should use disarm throws!
	=> sometimes the wrong throw is performed anyway, so yes, they should lose their gun
- check out those "fix memory leaks" messages
- weapon modifier: le bras pour le pistol tourne pas comme avant (probablement parce que la cell est pas une "HasWeapon")
- weapon modifier: idle motions bloquent parce que leurs durées est différente de la durée non-idle. Utiliser -1 en runtime?
- motion cells with multiple anims for normal/pistol/riffle? ie same transition for all of them. Isn't it the same as a modifier?
- AI: sometimes the arm angles for a NPC are not reset. Sometimes it actually looks fine... => try changing them on purpose?
	=> the angles should now be reset correctly......... unverified
- fade before cut-scenes
- blend between pistol & non-pistol anims
- faster transition pour quick left/right => useless
- THROW: disarm throws => make data driven first
- THROW: make sure throwed can't hurt thrower when falling
- THROW: reset throw data when updating script => should be fine now
- THROW: disarm => do the actual disarm => needs a frame for that
- Pistol throws:
	A lot of weird things happen with the pistol throws test:
	- crash when npc fires (after the sound)
	- throw anim doesn't play (interrupted by gun hit??)
	- when doesn't play, konoko blocked in Idle
	- npc moves alone => probably throw fixup still applied
	- npc still fires when being throwed!!
	- using the same ID is probably bad because the system finds a throw anim, but not the correct one!
- modifiers for pistol / riffle ?
=> should we "follow" modifiers until we find a correct cell ? ex: idle => idle pistol => idle pistol crouch
=> probably not needed
- select Konoko cloth
- camera update not performed at the right moment => should be ok now
- fixed timesteps for particles => not needed anymore
- APRIL 2006 upload

- very weird bug, sometimes the bullet falls through the ground => seems ok with a bigger offset
- check sleeping particles are really stable, and don't slow down on slopes => they slow down on slopes but it looks like friction
- revoir "front attack" for KC::LaserHit + RingWave
- Earthquaker: invincible when doing the move
- prevents motions when playing cutscenes
- disable ESC key
- change FOV en fonction de l'angle de la tete? => comme ça on peut passer quand ils tournent la tête
- bug in lifebar when energy seems negative
- max energy per player + revoir life gauge
- Barabas:
	- energy bar
	- can throw when doing stronger & stronger
- "quit" option
- screen copies way bigger on the 6800 !!!
- silhouettes game option
- render bug with silhouettes on taken powerups
- test different silhouette methods, move "method index" to RMScene (or remove completely?)
- memory leak sounddata strings
- interesting bug: the NPC dies and doesn't drop his gun, which is now unreachable...
=> SHOULD be fixed now.... until we see this again.......
- there's sometimes a render bug when drawing the lifebar => should be fixed now
- ban inventory when killed (else can select an hypo before touching the ground and that's weird)
- portal bug when entering the new secret room => it disappears without the camera lag, so it's probably just the portal code doing its
job and removing some geoms for one frame.
	=> could it be that the camera's position used for culling isn't the same as for rendering, due to the delay?
	=> is there a one frame delay thing ?
	=> use CameraDelay = 1 to make the bug obvious
=> should be fixed now
- land anim when falling without jumping => maybe not on all motions (esp attacks) but should be ok
- CAMERA: shake camera on hard land => doesn't look good. See comments in the code.
- bug when we do a body projection vs a npc in a corner => falls on us and "jumps" on the capsule => should be fixed at least with capsules
- BUG: balayette: can be fired again if we hit the NPC 3 times (!!) => should be fine now
- find why the hell the throws don't work when defined in another file
=> apparently we are missing some transitions: 23 when failing, 35 normally
=> because the striker profile didn't include the throws script...which also contains the throw target moves!
- y'a bien une hit anim pour le coup dans les burnes.. => STRCOMhit_jewels.zb2
- THROW: riffle throws
- where's the barabas anim where he carries the gun ? not a riffle, not a pistol... => STRRIFidle1.zb2
- touche pour changer de target lock
- better transitions to jump (mainly to avoid ringwave) => now also possible from "runstart" motions
- le jump est trop haut d'une manière generale => lower now
- striker pis throws
- bullet length = dep(framerate) => bad
- TURRET: laser disparait trop abruptement sur shield => pareil pour les bullets
- turret nous voit pas si tete dans le mur (crouch)
- bug: interpolation du bras portant l'arme (weapon on/off) => prend pas les bonnes limites
- interpolate arm angles when weapon on/off (unlock camera & test)
- destruction in detach weapon => bad, cf assert in SmartContainer
- if we stay near a wall and the NPC is far away, he doesn't do anything => path not found in AI_Chasing2()...
=> now using FindPathSafe workaround
- THROW: NPCs can throw?
	Issues with NPC throws:
	- sometimes do a body projection
	- sometimes kick doesn't start
	- when it does, we're in idle and the throw anim doesn't start.
	=> most of it seems because the throw is not executed for some reason. When we disable NPC throws
	there's no body projection and the kick always starts
	- maybe call HandleThrows directly from the AI ?
- surprised sound
- describe attacks in scripts for automatic use in AI
- "crouch" type doesn't exist so we can't use that in attacks. Replace type string with flags
- special npc attacks when player is in crouch mode => same as for "fallen" ?
- more ground attacks for NPCs => use "low" attacks from script instead of hardcoded?
- BUG: NPC can't touch us when we are crouch backwards
- BUG: missing crouch back hit
- dedicated NPC attacks => adjust vertical offset only in the end?
- unlock camera & press ctrl => weird stuff happens
- AI: fire should "cancel waiting" too
- striker: the vertical offset for konoko's throw target motion is now invalid (was setup for -2.3)
- sentinel: visual hint when we kick them
- include weapon's bbox in combat!
- remove anim = f(damage) => now using IMPACT_KNOCKOUT
- "radio saber" = ???  => is not used in Oni according to the experts.......
- favorize NPC throws when close to player?
- inventory: revoir update rate
- bandes noires cinématiques
- remove overlays when bandes noires
- Digicam: horizontal lines filter
- Digicam: black margins?
- Digicam: digital camera sound & overlay
- Digicam: remove overlays from digipic (possible?)
- Digicam: restore correct dist to char after digicam
- Digicam: can't access inventory in digicam mode
- Digicam: the 1 for the digicam is not clipped
- Digicam: remove kick happening on leaving digicam mode
- remove the combo after the FW kick => keep it only after the FW punch, ie duplicate some cell here
- blue aura when touched by mercurybow?
- bug when using the inventory while watching a console => unpause game...
- digicam: aspect ratio
- remove "inventory mode"
- remove TAB message when entering inventory
- moves pictures in inventory => pretty much done now
- why are we moving when doing crouch/up back & forth? is it the same in Oni? => well, yes, but not that bad => oh well, almost
- bug sometimes => infinite camera clicks
- les robots ont la voix de konoko sur le devil kick
- les enemis font encore des sons de gonzesse en frappant..............
- attack sounds => also in character script
- attack sounds in script
- "delete all" option
- turret touche le flingue qui nous protège => bof => stagger + lose gun ? => should be fixed now, by simply filtering out weapons
- fix ridiculous "GetRandomBool" => fix the original function
- real random number
- WTF, striker's throws don't work anymore! => piece of code from yesterday to recover throw attacks?
=> it's the mValidGunRay thing!
- stun weapon => very useful actually, to perform back breakers
- bug: a NPC has a gun and is resting on another one. He tries to "press A" to enable the gun, but instead takes the other one, ad infinitum
- AI with empty gun doesn't go for another gun?
- camera goes through ceiling when pressing SHIFT... (actually Konoko too) 
- remove extra crouch kicks for NPCs => except for furies
- body projection: what happens if we do that on a back character? => projected in wrong dir!
- body projection: when projected against wall, play special anim/sound/effect => maybe anim de target du coup de boule
- VDG has no effect on crouch positions
- console, cutscene, invisible => all that causes troubles in camera mode...
=> also, we can use the gun in digicam mode and take a picture at the same time!
- SOUND: pas de sons pour le saut
- perd pas le flingue when landing hard
- exit camera mode when dying
- NOVEMBER 2006 RELEASE

- ENGINE: clone skeleton characters
- crash when running the game twice => should be fixed now
- profile loading
- character music counter not reset on new game
- remove sound on flip jump? => yep, not there in Oni
- pas de son when dash jump
- check where the annoying weapon's sound is coming from! => well, gUsePowerup!
- broken balayette (...)
- block motion: allow camera
- sound when blocked attack
- check motion sharing / share state machine / MotionFactory and "DeleteMotions()"
- share motion data/state machines!
- remove target override, share state machines
pb: rewrite state machine & skeleton using MotionCellState pointers instead of motionCell (that's the first step)
Then we can "share" the local time by just copying the pointer from the skeleton, in the MotionState
new design3: just hash the MotionState* and MotionCell* to find current LocalTime in a cache
- all data created from the script must be shared as well!
- try "guard" macros
- BUG: new: crash bug sometimes!! => the "gun" one is fixed. Maybe there's another one, cf crash dumps
- some attacks always make the enemy fall => maybe use impact force to decide => nope, use "KO" tag
- also per attack sound / force. Ex devil kick sound should be data driven
- coup dans les burnes marche pas sur comguy? => should be fine now
- enable wall jump meme sans sprint
CHECK:
	- F9 mode
	- update scripts from console
Striker:
- the combo with a final jump/punch attack doesn't work on strikers
- body projection non plus => because the striker has a dedicated blownup anim and the target override uses konoko's one
- test Kyro II ==> yeeeah, sure..........
- time not reset in "one motion mode"? => should be ok now
- striker: better hit motion after uppercut => naaah, ok like this
- can't touch Griffin with crouch kick when fallen? => should be ok now
- collision boxes extruded downwards pour crouch kicks?
- check hit anims when fallen. Sometimes too much after a sweep kick
  fallen1 & 2 => looks the same
  fallenfront2 => looks heavier than 1
  => opposite for strikers...
- weird bug: when NPC is dead, do slowmo => circle dust under dead NPC!! => should be ok now ("gFixSmallMotions")
- reload sound & reactivate laser line => but without the anim
- GUN: reactivate laser ray if we have ammo ?
- on voit pas bien le nombre de combo, disparait trop vite
- increase combo delay a bit => & fix jauge
- gun sounds in weapon class
- muro_shockwave.wav for special attack
- flag pour avant bras dans les attaques? => already all there, check SM compiler
- helper fonction to send events (stagger, KO, etc). Refactor with SetKnockdown?
- dezooming intro screen + buttons horizontal scroll
- duplicated items appear in the memory dump. Probably because the const char* are only unique within a single library, but not accross multiple dlls!
- optimize debug block removal
- optimize string::getParameter!! => doesn't seem to matter
- memory stats => what classes consume the most, etc
- Optimize MotionCell* StateMachineCompiler::FindMotion(const String& motion_name)
=> doesn't seem to change much
- it crashes in Debug when there are leaks, probably because the higher DLLs have been unloaded already, and
the const char* are not valid anymore for them. For example if it comes from a plug-in which has been unloaded long
before ICeCore, we are in trouble. => ok, can now allocate strings
- AI: jumping AI not always working
- AI: reduce jump force for NPCs? => 200 looks fine ("human"!). Konoko's value is too high
- AI: stupid thing: striker makes a throw and ends up not seing us => goes to non player aware loop!!
- Developer: select NPC for playing => would motivate fixing the tweaks for each of them!
- play fight music with more than 2 opponents, like at least 4
- THROW: meilleur son pour certains throws, genre le coup de boule => code is at least ok now. Just use it.
- GUN: localized hits only for player... Different rules for player / NPC => player a lot more resistant
- AI: reduce max angle for head rotation, cf geyser
- barabas: earthquaker move too low, goes into ground
- barabas: revoir motion graph, has some voices from other char
- revoir tanker attacks
- SOUND: le son de la turret disparait de maniere abrupte?? ===> because portals not setup
- try to spawn NPCs and move them around...
- named ICE_ALLOC for clearer memory dump?
- ?????
	IndexedTriangle[NewNbFaces] - 334272
	IndexedTriangle[mNbFaces] - 4642016
	=> shows errors in the code!!!! cool :)
- RMMenu crashes when selecting last ghost entry
- optimize PB stuff using stricmp?
- crouch motions should have a crouch flag (not just the idle one), else non-crouch attacks are used by NPCs
- 19 Mb for PR???? Il est possible qu'on stocke toutes les positions pour rien là dedans, en perdant
à la fois de la ram et du CPU time lors du blend.... => indeed! At least removed from files now
=> ok, seems to work with less memory. Optimize blending now! Also test export zcb2 again?
- don't save opcode models all the time
- also crash in RenderableSurface::RefreshVB ===> probably a bug in the NEW_VB_MANAGEMENT!!!
- ghost faces??? where are they coming from? They disappear if we remove the normal from the VB, ie if we regenerate them
Easy repro: use level10redux, camera mode, click on up transparent part
- debug crash load zcb. Apparently we have 0 verts but some TVerts & CVerts
- NS kick doesn't break glass
- selection of faces
- select faces & detach / etc inside ICE... way easier again
- use different saved files to have the complete level => indeed
- clear selected faces array when loading new mesh! => and not when invalidating caches, too often
- ICE: remove user_data in control interface callbacks
- vdg on skybox?? crash? ===> no, probably handled as a lost bullet. Might consume some serious memory though
- VDG: when are "iters" deleted? Do we delete the registered objects (in bullet manager)?
	=> bug is probably that VDGIter gets destroyed in Update, but it's still send as a userdata from the bullet manager, during render loop
	=> probably when render fades out before we get a hit
- VDG: check we don't create new InternalBullets while parsing their array ======> doesn't seem so
- Vertex selection: just use normal raycast + closest vertex
- serialize selection (partial selection) for portal edition
- use yellow polys as portals? => naaah, only possible when they exist! And editing them in the engine is just easier.
- ICE: no warning when overwriting a zb2 file??
- Select face & extract submesh combined. Or "extract current submesh" option. Or floodfill in face selection mode when double click.
- Level10:
	- glowing stuff pas visible entre les lattes des stairs??? ==> should be fixed since the "lattes" vanished
	- missing faces in green part ==> also in original mesh I think
	- make sure yellow collision polys are kept
	- check those collision faces on the stairs
- motion blur (not slowmo one) during NS / real motion blur (not radial) on NS
- Digicam: blur/unblur when zooming => reduce blur coeff & don't blur when we don't really zoom (limit values)
- Weird target lock selection => select NPC far away instead of close one
- ICE: rename "LSS" => capsule =======> naaah, bullshit
- discard fire quand l'arme touche un mur, pour pas tirer à travers!! => utiliser raycast vers user point ?
- bug quand on chope l'arme en courant => pas possible de choper une arme par la suite => obsolete
- bug when powerup taken while running => invis par ex, not activated => obsolete
- BUG: crouch kick sur plan incurvé du level10 => soubresaut, encore le "circledust" bug probablement => indeed
- per-motion "weapon" tag not needed anymore? => indeed
- THROW: end of running lariat => changement d'orientation du NPC => voir avec les vraies fallen anim des NPCs
- en sortie d'un throw target striker, la transition fallen -> idle est foireuse (rotation 180 degrés)
- check mipmap stuff (automipmap disabled + GDMipmap lib)
- culling bug after first rama room ==> seems ok but now the character sometimes disappears??? => maybe numerical issue with culling planes? => yep
- visualize non-renderable CD polys => ok, but needs to disable portals
	- crash exit => since container added for per character impact sound logic
		=> also non released user data!
		=> but it's more likely because plugs are released at the very end, after the scene has been deleted. Or something.
- essayer demo mode / computer vs computer
BUG: move gun inside level, press ctrl, rotate player => gun sometimes disappears!
=> because of this:
	if(mControlled->SetPos(CurPos))
	{
		UpdatePortalID(kc);

		if(kc->GetCurrentWeapon())	UpdatePortalID(kc->GetCurrentWeapon()->mGraphics);
	}
- clear zb & stencilb
- Some tanker moves should really ban camera motions => should be better now
- the AIAngle var is not correctly updated by throws => should be ok now
- Glow when hit laser
- ICE: Fog manager => useless alloc
- CustomArray loading from a const char => foireux, also when file not found
- advapi32.dll in resources???? => because LoadLibrary wrapper had a "AddResource". Not anymore.
- AddResource as a side-effect of FindFile => bad design => changed
- finish USE_STREAM_INTERFACE in ZCB reader
- CustomArray/CustomArrayReader somewhere/Stream/File/VirtualFile => common loading interface somewhere
- PAK manager
- have a key to play a death anim immediately, just to check the transition easily
- quand on tire sur une getup anim, ça devrait immédiatement balancer l'anim de death
- gun not dropped from gun's position => by design
- slowdown when enemies die?? => probably circledust
- Le bugfix "CircleDust" produit encore des emmerdes dans le crouch corridor cette fois => indeed
- too much CircleDust when going down the slope (offset is now too small?)
- KP Intro: make sure horizontal text scroll is ok with all resolutions => removed
- KP Intro: the intro scrollers aren't that great => removed
- GAMEPLAY: only enable NPC death slomo when this is the last NPC standing ?
- play death anim as soon as it happens (reset state machine/don't wait for next transition) ==> should be ok now
- GAMEPLAY: death effect all the time ? => no, we don't want it when we snipe from far away
- only play death effect when it's the last opponent? => otherwise it slows down the fight and we don't know if the NPC died or us! (not so clear in melees)
- BARABAS: too many earthquakers => put a limit on max number in a row?
- rising fury on a fallen fury => doesn't fire hit anim
	=> actually, same with pretty much all enemies
	=> because of obsolete "91" event?
	=> seems better now but not completely fixed
	=> maybe also the random stagger stuff!
- random stagger not always good, ex when we throw a npc on another... => some attacks MUST generate the blownup anim
=> ok, random stagger disabled
- THROW: throwing a guy on another guy sometimes pushes the CCT in weird way
- THROW: check hit frames for *NPC throw targets* motions
- weird rendering issue with door in "green room". ZBuffer for post process? => because of shadows, somehow
- load/save options to registry ?
- GAMEPLAY: kungfu jump => only if we press button again (same for jump with space bar)
- check what happens when FindFile finds stuff in a zip, are internal files also added to resources?
- Archive: make sure all resources are still correctly collected after the recent mess => can't we simply put "addtoresource" in IceFile? Each time we access the disk here, hop
- MAY 2007 RELEASE

- crashes again after pressing "end game" => non released shadow casters
- gTransitionCallback => user_data == KonokoCharacter?
- CAMERA: cutscene cameras
- remove overlays in cutscenes
- AI: they hear us in their back without turning? Sigh. ===> only because PE is missing
- AI: when NPC sees player first time, it immediately faces it (no nice rotation). See test env.
==> because of Enable(AI_BODY_TRACKING) in AI_LoopPlayerAware
- combo riffle disarm + coup de coude arrière  => doesn't seem to work ==> now it does
- DOOR sound: si on reste près d'elle, le son se joue qu'une seule fois, même si elle monte et descend plusieurs fois ===> BS
- Camera04 doesn't look too bad, actually. Add a pause at start & end. Give the guy a riffle?
- white glow for MB hit => now good looking blue
- enable back breaker on riffle idle => done but disarm looks a bit weirdo! => fixed
- disable target lock in cut scene!!
- Big vertical laser: die when touch? ===> death triggers
- animated cutscene cameras
- THROW: empecher les throws entre NPCs!!! => should be ok now
- NPCs definitely throw themselves (at least the pistol throws) => should be ok now
- "barabas consoles"
- stop AIs in cutscenes!
- MAY 2007 RELEASE 2

- ICE: create centered window by default?
- DemoMode: why desn't the striker start immediately?
=> because PE fails. Fixed if using an empty context => I suppose the agent collides with himself... ====> should be ok now
- 1-frame white character on gun impact?
- GUN: Gun hits: shouldn't fire a hit anim... as in Oni, should only have a small impact. Else too painful
- AI_Fire doesn't exit when we become invisible
- AI: reset NPC head pitch, and do it also when not firing
- AI: manque un reset du visage apres AI_Fire? => should be ok now
- walk anim konoko
- les mouvements spéciaux de Konoko empruntés aux NPCs sont trop haut (touchent pas le sol) ===> definitely
==> should be ok now, unless we forgot some of them
- riffle pitch limit a revoir
- FindData() to get back KonokoCharacter => lame
- check user data in Skeleton => used to give access to "RMSegmentedSkeleton"... Hmmm... ===> now contains KonokoCharacter
- make update cb in Skeleton static
- check PeekMessage stuff in IceApp. (FreeCamera issue)
- BUG: mouse wheel when invisible rend visible à nouveau => should be ok now
- check message loop in IceApp.cpp => should be ok now
- escape moves don't really touch the ground => ok for Konoko at least
- This one should now be fixed but worth keeping this in mind:
	corrupted stack nearby AI_Fire?? => might be in ViewIsBlocked instead
	Also the /RTC1 flag uses a lot more memory on the stack (cf Novodex bug). Maybe very bad with micro threads!
	Ok, more painful than this:
	- Local containers update the static (stats) container LL with their addresses on the stack. This happens in a microthread.
	- there's a MT switch. Something happens to the stack.
	- Another container in the other MT updates the LL and writes to the previous Containers, "on the stack" => but I guess the stack memory has changed
	and now belongs to the other guy. Something really bad like this. Well, "globals are evil"... even when just used for stats! But it's a frightening
	bug that might very well be there for other global/static things. We should detect when we take the address of a stack-allocated object.
	BTW there might be multiple linked lists, like one per DLL or something nasty like this. The address for the tail seems to change??
- fire delay after cut scenes
- la body projection contre un mur devrait enlever plus d'energie
- console cmd to lock an AI in crouch (to check crouch attacks) ==> "lockedcrouch"
- enemy pas toujours projeté dans la bonne direction par les "body projection"
- body projection: on impact: rotater enemy vers player (interpol) pour etre sur qu'il est bien ejecté dans la direction de l'attaque ?
- menu: rotate player with mouse
- JUMP: Start game & jump immediately: bug!!! ==> should be fixed, see modif in "FromTo" code...
- coups de coude vers un npc qui va vers nous => npc passe à travers nous. Au lieu de disabler la CD, réduire le volume.
- "collision fixup" is framerate-dependent!
- when we kick a fallen character backwards it moves towards us
- BUG: slide in weird way when on top of console ==> use correct character volume in CCT interaction
- COLLISION: pb when we are left colliding in a console (salle with Mukade) => arrive si on court vers la console pendant le fixup
console bug: after msg we are penetrating it and it's possible to go through
- JUMP: bug when jumping while on the moving platform (blocked in jump)=>probably because of recent fix for console
=> so it's also probably possible to block in jump while the fixup is applied
- striker gun on foot back => va vers nous... bad
- BUG again: jump over NPC => blocked
- no collision on dead anims? ==> probably because player "is dead"
- brain class?
- bug when kicked while accessing a console, sequence doesn't stop, AIs don't stop during cutscene, etc => interrupt sequence if hit?
- bug when killed while activating console
- BUG: tanker firing in crouch mode => not knocked off by sweep leg => probably because of balayette stuff
- BUG: down when grabbing powerups => powerups locked forever. Just happened, sorry.
- one key to die => not just knockdown. Then see what happens in various situations.
- GAMEPLAY: dead characters should leave ammo/etc
- is the transition cb called once ? => yep
- message buffer printed to screen (for PE profiling, etc)
- BUG: can't pickup stuff anymore (happened after hit while picking up something I think) => should be fixed now
- invincible moves avec hit = -1 => marche pas pour "getup", à la fois invincible et attack. Needs an extra bit / move.  ==> should work now
- undetected dead if death while grabbing weapon - missing links? ==> should work now
- BUG: when fallen and hit by npc, turret fires again on us
- do better wall jump ok when already touching the wall
- disable wall jump if we're moving down
=> might need conditional transitions for this. Hardcode, or use TBLEND_LINEAR entry for condition => or better, the TVI
=> ok, works... recode the original one with this? move hardcode to dedicated file?
- AI: BUG: des fois le NPC fait un tour complet avant de s'arreter en face du player => should be fixed now
- AI: blackboard architecture
- AI: don't let all the NPCs play the surprise sound at the same time!
- Limit "shift" jump rotations in the same way we limited the wall jump (TVI)
- make sure fallen-ok attacks have the fallen flag
- check hit transitions from crouch => not quick enough
- AI: revoir attack scripts (and check they all have crouch attacks, for ex)
- KONOKO AI a pas de crouch attacks
- debug render code should go back in RM objects.... just better
- le coup dans les burnes devrait pas marcher pour les robots
=> idem pour le stun
- expose "slomo on knockout"
- more user-friendly script names (XXX|YYY|ZZZ is not cool)
- camera for demo mode - using "ComputeCameraBreak" ?
- ninjas are left_handed ?!  ===> check dual pistols
- check change in PRAccessor doesn't break other things ====> actually it does... OF COURSE.... cutscene cams are dead (=> in IceRM3DObject.cpp)
- regler le pb du getup kick a répétition
- AI: un peu ridicule quand un des 2 gars du demo mode passe en suspicious!  ==> SHOULD not happen anymore
- AI: un peu stupide: le NPC fait un "getup-kick" vers nous, et juste après looks "suspicious" sans savoir où on est => should be fixed
- jab attack should KO
- NPC taunts
- TAUNT: anims + sounds
- striker sounds like "now I strike"
- BARABAS: doesn't have the same moves as in Oni => use Elite
- use "FOUCH" and "SWEEP" flags on more moves
- flaque de sang en 2D metaballs => + perlin?
- Target locked, perform a running lariat on a guy. Keep locked. Konoko rotates after the throw. => should be fixed now
- side jump attacks are clearly fucked up
- run diag, jump, kick => issue when landing
- decal manager: uses PNDT vertices => not optimal
- don't sort faces from big glass meshes
- per-frame allocation buffer - big shared buffer / frame
- FEBRUARY 2008 RELEASE

- debug render interface in Flexine SDK! ==> actually in IceMaths but good enough
- Rename TriList & TriangleList
- lasers can't break glass
- CCT: double-sided glass issue => see BACKFACE_CULLING define in extrude + sphere-vs-tris
- move CCT code to dedicated dll/lib
- get back last CCT from NX
- the capsule CCT seems to collide against back-faced triangles ===> not anymore => now it's back to fix the glass issue (temp)
===> because SweepSphereTriangles2 doesn't do culling properly
- character controller & double sided stuff ==> should be ok now I guess
- Level10: check weird door lock in final room ===> also like this in Oni!!!
- Level10: CCT: big slowdowns dus au CCT
- New FMOD
- LAG: many issues: ==> generally speaking, it's fixed
	- update camera code probably not very safe ===> better now
	- lag happens even without camera motion, disable mouse filter, play with body lag coeff, press slowmotion, turn...
	- one pb is that the arm rotates faster than the body, but then it comes back to the original position before the body finishes the move
	
	- disable mouse filter and check the massacre => might be camera position update
		==> ordering in camera update helps. Still issue with camera lag but less than before
		==> doesn't appear when cameralagcoeff is not used
		==> ok, fixed now ==========> but same bug appears in locked mode
- refactor sweep tests:
	- check value for PARALLEL_EPSILON
- ICE: Contact DLL
- persistent sweep tests create troubles with doors, also creates troubles with throws (collisions not disabled anymore)
- Wrong hit motion for crouch-kick-FW attack
- ENGINE: sweep test lib ==> Contact
- "yes to all" for delete selection
- try TBR = 0 in all ComboX transitions
- APRIL 2008 RELEASE

- decals on/off
- foot hit when shot in the foot
- when going to camera mode and picking something, shouldn't destroy our selection in mesh mode
- SetHit/GetHit => does it have to be virtual?
- Bug with mesh selection:
	- camera mode, move a bit
	- press F3 while moving => selection window starts from top-left corner => many objects selected suddenly
- walking sound = f(surface)
- run diagonal, jump, press SHIFT => orientation foireuse
=> et aussi attaques en crouch
- tweak angle weapon par rapport à l'horizontal quand on shoote => ArmPitchOffset increased to 0.3
- doors don't all open in same dir
- event_wall when touching other character => bof
=> in particular after a daodan dash when the NPC collides with the player!
- "head 2 wall" from Loser! ==> test in Striker_SpecialMoves.txt
- Make sure striker's charge can't be rotated
- weird bug (?) when jumping on an NPC. Because of the new CCT???
	- looks like a BUG in sweep capsule capsule for character interactions
	- behaviour not the same with USE_ICE_CCT
	- also check PERSISTENT_SWEEP_TEST
	- disable recovery offsets in InteractionCharacterCharacter to debug this
	* also make players fixed, they seem to be moved away for some reason
	===> it's the capsule/capsule culling in IceSweepTest.cpp!
- CCT: reduce the CCT volumes in crouch mode
- Rotation stuff:
	- Pause, rotate camera N tours, unpause, see the player rotate like crazy => miss a "reset" when paused
- Diagonal issues:
	- can't jump while running back diagonal => seems to be a DirectInput issue, see IceInputSystem.cpp
	=> and indeed, if we use "L" instead of "Space" to jump, it works! ....
	=> no DI, no Win32 ==> LL Keyboard issue!!! => unfixable
- demo-mode: sound volume dépend de la position du player?
- Redo Thug starting from ComGuy. No taunt. No throws.
- Add Test level: door
- decals on dynamic objects: can't we just do an extra SetWorldMatrix() before rendering ?
- dos debug console
- make console work on platforms
- fix shadows on platforms
- platform sound
- CRASH in GenericCache when it returns null. Same as VDG bug???? => probably not
- "vdg bug": seems to crash in void KW_VanDeGraaff::Render(Renderer* renderer), then calling IceCore. Maybe allocation?
- Portal problem: consider a big room with 400 objects. THEY ARE ALL IN THE SAME REGION. So, if we reach this region, the objects
will all get culled one by one against the current planes. Count 1000 cycles for one test. That's 400.000 cycles directly. Oops.
We need a way to put some hierarchical culling inside the portal system. Since the culling planes planes are constant for each
traversed region, it should be quite easy: just use an AABB tree in each region. That being said the usual issues with dynamic
objects apply.
- add small glow when taking an hypo
- glow 0.04 0 0.08 => NICE
- fade out glow color
- Portals: instead of output prunables, just have a callback and let user decide what to do ? => that's how it works now!
- Portals:
	- portal object interface: ("Portable"! :))
		- get world aabb
		- output prunables
- portals & shadowcaster
- ICE: optimize ram in portal classes (like Region and its containers)
- CRASH: feb 23 2008: after disarming the fury and started shooting with the VDG while she's still falling ==> probably "VDG bug"
- CHECK CCT OPTIM TO FETCH PORTAL/SURFACE SOUND => seems to work. New console command to enable.
- CRASH when killing Barabas with VDG, seems to be in VDG hit cb. Not in debug.
- VDG doesn't hurt Barabas?? Lifebar doesn't decrease
- strange bug once with lifebar suddenly going to infinity or something
- get back correct modulo3 macros, use in quat<>mat conversions
- automatically leave inventory when enabling shield / invis?
- blog:
	- optimize by sharing algos
	- multithread tests
- DemoMode: better level? ====> helipad
- DemoMode: infinite ground instead of room ==> or just a better looking room
- "demo mode pas compatible avec invisible" <= not sure what this means now
- collision check when crouching up doesn't work anymore! => only on helicopter, probably because it's "dynamic"
- GameStats: add throws
- SlowmoOnKnockout: add throws
- SOUND: Fury => 1.14 times faster ======> done except for death sounds, and I changed the -pitch-, not the speed
- killed when restored on lower ground (as if we were falling)
- platform sound when restoring them?
- display game stats at end of level
- demo mode music
- ca.ReadByte()!=0 ===> ReadBool()
- LEAK: cutscenes from consoles, not deleted
- disable tab while in cutscene
- the iron demon cutscene is not replayed after a restore
- stop timer during cutscenes ==> at least for shield & invisible
- AI: if moving suspicious & touch us, should react
	==> doesn't work well, probably because:
	a) the attack transitions may not exist in "walk" mode (use a modifier???)
	b) or they exist but not all attacks are available when sneaking => use just vanilla punches
	c) when the player bumps into an idle guy, the idle guy may not have the right collision flags
		In any case, they should attack in 4 directions and also react to sounds maybe
- "burnes" ++
- glow on invisible looks very cool
- glowmanager serialization
- Strikers now do weird things when we approach them from the back (because of suspicious/invisible changes?)
- missing sounds for thug's special moves
- reactivate hit foot, as loser did (striker's foot ouch)
- stop sounds when hit:
  - play some voices with the same channel (special attacks, taunts, hits & deaths sounds...)
  - store channel inside character (or in a manager but later)
  if ( stored_channel != INVALID_ID and IsPlaying(stored_channel))
	StopChannel(stored_channel);
  stored_channel = play new sound ()
- stop rise of fury sound when hit!
- GetGroupInfo() => has a N^2 part :(
- patrolling test
- new level info managers
- check fire stops interruptible sounds
- expose ambient occlusion params, add light multiplier
- make a test sniper scene
- VOID helper don't relocate junk objects??
- si sentinel touches en jump, pas d'effet
- SENTINEL don't hit if we have a gun in idle protecting us ==> should be fixed now
- Names à la Jet Set Willy for each "room"
- add fade on region names
- pain sound for hit jewels
- The laserwall sweep-test problem:
	- it must stop the player with low framerates
	- it must not stop it if he has a shield
	- it let the player pass when the wall is "open" by crates

We could try to put custom aabbs (like CCTs) beyond the laser segments but it's true that the sliding might
just break everything

easier to just do that as a second pass and kill the player if any impact is found?

For each laser segment
   compute intersection between swept segment (motion from player) and laser segment "vertical" plane
   if the player crosses the plane, register a kill
=> only if no shield, it's ok to tunnel if the shield is there!

the particles against the shield could be seen as a dynamic point light with variable range (range = f(number of particles))

========================================================

	- bug when we dash back through laserwall
	- passe au travers avec slow framerate!
	----------
	- swept lines for laser CD => add tris to CCT => hmmm but then the body parts will never touch the laser
	----------

	Character through laser wall:
	- detecting tunneling is not enough
	- we need to add a vertical segment inside the CCT, and sweep it against the individual laser segments (in a collide-and-stop fashion). Then the CCT would be blocked inside the laser wall and the normal code would then finish the job. We need to disable CD between the usual volume and the laser-wall... ie if we add laser segments as geoms in the CCT, the box will get blocked against them immediately, as against a wall. But the character wouldn't die since the lasers may not touch body parts anyway.

	So it's ugly but it looks like this:

	if swept volume intersects laser wall
		do CCT move including extra segment & laser geom
	else
		do normal CCT move

	...talk about a generic character controller...

	Anyway the central segment might be reused to compute the portal ID.

	The segment query can be done in a completely separate pass using only the laser geoms! So it's actually just a bunch of sweep-tests without all the CCT logic. It overrides the CCT result if something is found. However it must be performed between the original position and the new position returned by the CCT, to avoid wrong results. Hmm, can still be wrong when the character has been sliding a lot against the wall in a single move. So this second pass must be performed for each CCT iteration.

	- another idea: just add laser geoms offset from the actual laser wall. Offset depends on what side of the wall we are..
	=> does that work when we cross with a shield ???

========================================================
- BUG: laserwall: probably multiple hits
- LASER: burnt sound when hit
- Laser: the front/back test is wrong, we should use the LASER's plane and the CHARACTER's witness point!
- BUG: laserwall: front/back attack for laserwall not perfect
- laser: can pass through when front/back status not correct
- put laser in region, don't test if not same region as character
- difference between mSavedSkeleton.mPos and mPreviousPos? => none
- BUG: laserwall: no blending when knockeddown ?
- save/restore saved skeleton
- don't recompute TBV for each laser! ======> put this in interaction map?
- reset position to laser wall when tunneling is detected
- serialize skeleton data
- serialization of patrolling state doesn't work => not all the time. Seems it works from suspicious state, but if the guy is in
player aware mode it doesn't properly restore the patrolling state! => maybe because the resetai stuff doesn't work
- revoir tous les KP_RenderText() => use align flags
- IK: problems even with arms only, when doing kick/punch moves while holding a riffle
- microthreads manager + deletion + serialization
=> "resurrect" doesn't "work" because the AI is fallen, and hence immediately switched to player aware loop
- patrolling test: the guy sees us immediately because he's spawn too high
- patrolling test: when he starts firing after the delay, his arm suddenly moves up towards the player (when standing on the small wall)
- sniper: in depot, he should stop firing when path is blocked
- check why IK is not enabled when we start the sniper test
- big pb with sniper in depot, sometimes stuck when visibility has been lost & reacquired
=> collides with "rambarde" in front of sniper. Seems we use a bad source point! => fixed
- there's a "mega hit" sound when character is touched by a laser while already fallen ??
=> also when a huge firerate sniper hits us twice in sniper test
- no sound anymore when player is hit by a gun? no sound for gun impact?
- no sound for turret/sentinel hits
- weapons don't cast shadows
- gun shadow: clean/refactor code, test all shadow types
- shadowmap: recenter rendered objects to use resolution better
- invisible: make weapon invisible too
- if restored from invisible to normal, invisible sound doesn't disappear
- flybys: use a back plane instead of an afro?
- flyby
- better "volume lines"
- add correct per-weapon flyby sounds ===> there are none! Just 3 different ones for the MB
- sound volume screwed up for gun impact in sniper test
- the sniper isn't restored with a weapon!
- check visibility status of weapon after a load/save while invisible
- write a piece of code to detect missing transitions to hits ==> "MissingTrans" in console
- enable throws from taunts
- sort transitions to find them quicker "by ID" <=== impossible, they're already sorted by priority
- save/restore crash: probably just because it's not done at the right time
	=> but doesn't happen in Debug so there's also a compiler thing somewhere
	Disappears if we skip this: void UpdateWeapons(const TimeInfo& time)
	==>	KW->Update(time);
	==> void KW_MercuryBow::Update(const TimeInfo& time)
	==> seems to work with rewritten code. Maybe because "StabbedFace" doesn't initialize its members?? Still looks VERY WEIRD.
	I don't know why the FindBulletHit() returns null the first frame
	=> explains the "compiler thing" though. StabbedFace should just initialize its member.
- SOUND: add a big big "land" sound when falling and dying
- save/restore shield/invis while blinking doesn't work - actually blinking doesn't even start the second time
- stick all characters to ground before starting
- build times, special exe for that
- trilinear filtering in options
- container with stack alloc
- KonokoGlow.Cpp
- optimize glow (val2=0, etc)
- put region in wall lamp depot, change level name
- glow culling: Portal culling glow meshes:
	- put glow meshes in portal system
	- mark them inside the portal system
	- when rendering, parse the list from the portal system itself, where both the timestamps and the glow bit are then available
	=> NEW_GLOW_PIPELINE
	=> works except for door locks?!
- FX: combine glow & invisible ==> hmmm, doesn't do what I wanted ==> but still combined now while invisible
- portal: on peut utiliser le résultat du CCT pour trouver la région courante!
- running lariat from back side? => no
- different footstep sounds on different materials => "done" now
- "void" pos in the middle of the helico ==> use void helper
- SOUND: make sure loop sounds are not played twice when called twice without a stop call. Cf gInvis
- shield only protecting from guns & ringwave
- Shield issues:
	* BUG: can't hit enemies anymore with a shield!
	* sphere gets rendered
	* sound issue when disabled on laserwall
	* billboard stays & can go through laserwall at end of shieldtime
	* sound issues with multiple shields ==> shield sound only for player	
	* fix serialization
- blood puddle when falling from high ground
* camera manipulator should work with grid
* use object ptrs as GUIDs in load/save => we kinf of do that already
* OVERPOWER: activate ovp only when starting from full glow
* OVERPOWER: can't access console anymore
* OVERPOWER: lock target remains active when touched by sentinel while overpowered
- stick to ground avec un flag per anim? => useless now
- check portal update is correct for character in empty room
- check why UpdateSentinels is so slow => ViewIsBlocked()
- check initial memory assert... new... because of IK? => can't repro
- detail texture matrix in material
- "preserve shadow vertices" option in vertex lighter
- envmaps chient ==> y'a pas de normales dans le VB!
- redo cutscenes in consoles
- debug mess with TextParser::Parse (USE_STACK_ALLOC) and SUPPORT_BASIC_CONTROLLERS and the weird sound bug!
- better sound for opening door vent
- check we can still fire at barrier. raycast camera != raycast weapon <= indeed, can't fire at them anymore
  We need 3 different things:
	Weapon ray => DisableRaycast
	Camera ray => DisableCameraRaycast
	CCT	=> SetNonCollidable
- add a special group for detail meshes (skid marks, etc) => no collisions, no raycasts
=> include posters, postits, orange border in corridors
- Optimize surface sound selection
- transition to "falling state":
	* falling knockdown not working... ? => only when jumping forward! ???
	* falling anim => konokojump_flail
	* only register flag when motion goes DOWN
	* issue with circular scripts:
		* we want to be able to switch to "falling" from any state
		* we want to enable all hits?
	* falling anim for NPCs
- also, konoko's blue bboxes aren't visible when "free pruner" is selected? Isn't everything moved tho the octree anyway?
==> maybe not for objects spawned from the console
- sometimes it looks like the mb goes through far away npcs => definitely ==> only for "free" objects?
Because of max dist?? Very weird, even with a much bigger max dist it still fails. The weird thing is that
the reticules are not rendered all the way (but that's normal => MAX_NB_RETICLES), and especially that the NPC can shoot us anyway, which
suggests the raycast actually works. Maybe it's just impossible to really hit the npc from far away without target lock
Distance is ok, the hit happens around 2000, and the back mountain (iceland) is 10000
Looks like there's really an accuracy issue. Maybe simply this when max_dist is big:
		Segment Seg(ray.mOrig, ray.mOrig+ray.mDir*max_dist);
=======> fixed with "iterative raycast"....... hmmmmm...... definitely accuracy stuff :(
=======> but now we can't shoot anymore when NbIter is 0. WTF. => fixed
==============> SegmentSphere looks guilty
- SegmentSphereOverlap still screwed up
- "unlock camera" completely, ie also when pressing ctrl
- check #cells in octree................
- crash when kicking with no sound
- memory leak!!! => looks like it's in the FindReceivers() function??
- remove allocs in StabbedFaces
- INSANE sniper bug. Some raycasts just don't work anymore. FindImpactPoint must be broken.........
- remove allocs in 
bool RMScene::FindStabbedObjects(ControlModeID pool, const STABCREATE& stab_info, StabbedFaces& stabbed_faces, udword group_flags)
- re-enable local containers => and do missing ones
- Ray-sphere: "Robust" version still weird sometimes in the ventilation duct.
- backspace => gives all weapons

This one is useless:
	ParameterBlock(const String& str);

This one creates a temporary string:

OUCH: char* to String to char*

ParameterBlock::ParameterBlock(const char* str)
{
	Create(String(str));
}

inline_	udword				Create(const String& str)		{ return Create(str.Get());	}

udword ParameterBlock::Create(const char* str)

- done twice?
	// Remove TABs if needed
	if(IsSet(BFC_REMOVE_TABS))		CurrentLine.Replace(ASCII_TAB, ASCII_SPACE);

	// Remove TABs if needed
	if(IsSet(BFC_REMOVE_TABS))		CurrentLine.Replace(ASCII_TAB, ASCII_SPACE);
- Optimize: 	Container Projectors;
- Optimize:	mRenderer->GetViewports() <= in scene loop
- Sniper shouldn't be "surprised", really
- sniper nevers tries to pick up his weapon again, in sniper test => maybe just missing ground_mesh!
- Striker: transition too fast when evading backward and continuing moving back
- foot-hit-ouch: vertical offsets not correct for NPCs: comguy, tanker, Ninja, Thug
- BUG: no reaction when npc shot in the foot from backwards (!)
- GAMEPLAY: E key to drop weapon
- key to drop weapon => C? X?
- Function for this:
mPrevBodyYawTarget = mBodyYawMemory = mBrain.mAIAngleToTarget;
- use sweep test for camera!!!
- CAMERA:  use a swept capsule instead of raycast, ie never let the camera go too close to player?
- cam's ray should be shot from a fixed point (not dependent on anim), else possibility of jitter => or use a swept sphere
=> or use multiple rays
- revoir serialization crates (new glow variables)
- crates à durée de vie limitée sous les lasers? ====> maybe with an increasing glow
=> tweak max time + glow color, then test in game
- remove glass objects from picture analysis
- ban going to console when intercom is pending
- fix mess with intercom starting while console text is displayed
- GAMEPLAY: code needed to unlock door, written on a postit
- pic analysis: remove black bands!
- weird camera hiccup when fallen hit, with sweep test on. Maybe the starting sphere intersects the floor
- USE_SENTINEL_LOS_CACHE
	=> some sentinels fire because there are holes in the walls, and the ceiling is not double sided so the player is actually exposed
	=> disable backface culling?
- shadows not rendered while intercom is on?
- Dialogs as in Xenosaga 3
- disable raycast/cd on shadow quads
- fix initial mess with new intercom in proto
- fix intercom bug when digicam is on => would get fixed naturally without pause
- selection widget à la max
- *use* selection dialog
- no need to update shadow maps each frame?
- err.... blurred shadows.... just render at 32*32 and display larger???? ====> doesn't work at all :)
- "void objects" are put in static pruners, bad
- shadow is rendered on invisible void objects!!!!!! Insane bug
- Importing Consoles.zb2 may not be useful anymore
- huge performance hit with portals on platform => probably because of shadows!
- check speed of this stuff: 	rnd->LightOff();  =======> or just remove all lights when game starts
- can't shoot on all muro monitors
- select mesh(es)
- task manager: frame memory leak AGAIN. FindReceivers again? => apparently not
=> disappears if we remove the portal callback:
#ifdef DEBUG_LEAK
//	scene->Enable(SRF_VFC);
//	return true;
#endif
- make a "texture blurrer" class directly in DX9 layer, exposed as tool

//Blur Weights
static const float BlurWeights[cKernelSize] = 
{
	1.0f / 4096.0f,
	12.0f / 4096.0f,
	66.0f / 4096.0f,
	220.0f / 4096.0f,
	495.0f / 4096.0f,
	792.0f / 4096.0f,
	924.0f / 4096.0f,
	792.0f / 4096.0f,
	495.0f / 4096.0f,
	220.0f / 4096.0f,
	66.0f / 4096.0f,
	12.0f / 4096.0f,
	1.0f / 4096.0f,
}; 

//Horizontal Blur
float4 HorizontalBlurPS(float2 uv : TEXCOORD1 ) : COLOR0
{
    float4 Color = 0;
    
    for (int i = 0; i < cKernelSize; i++)
    {    
        Color += tex2D( g_SampTex, uv + BlurOffsetsH[i].xy ) * BlurWeights[i];
    }

    return Color;
}

//Vertical Blur
float4 VerticalBlurPS(float2 uv : TEXCOORD1 ) : COLOR0
{
    float4 Color = 0;

    for (int i = 0; i < cKernelSize; i++)
    {
        Color += tex2D( g_SampTex, uv + BlurOffsetsV[i].xy ) * BlurWeights[i];
    }

    return Color;
}

The shadows in Max Payne 2 look nice, with its soft edges. How is this achieved technology-wise?

It’s a render-to-texture shadow with a pixel shader blur. The shadow is blurred and faded depending on the distance from the
shadow caster. Additionally, the shadow direction and sharpness is calculated by sampling the environment. Shadow casting
direction is determined by the primary light direction and sharpness by the light ambience of the environment.

- Should be const:
bool BoolRS::operator==(const BoolRS& obj)
- In creation structures like MotionTransition, could probably be const char instead:
String	mName;
-----------------------------------------

Shared transitions:
	- different sources
	- same destination & same blend params (ex: hit anims)

- create transition with no source owner. Stored in a shared pool.
- when looking for new transitions, check shared pool first? But this can be done for some source cells only (not all of them)
 and it might break if transitions are pre-sorted by priority. Actually if we store transition pointers inside the cells,
  we could just add the shared pointers to the cell like for other transitions. We just don't own them.
- remove "GetSourceCell" and the source cell pointer in Transition, for this to work

------------------------------------------
 Now implemented using "shared transitions":
	- "group" transitions (N to 1)
	- all hit transitions have the same params (because of templates) => store them all in the same struct or something?
	- transitions "from" and "to" to group similar transitions together?
- remove recoil when camera is unlocked
- put gLastSharedTrans in SMC class
- share crouch hits & others when possible
- Pb with "Empty" call in FindStabbedObjects() => creates one alloc despite the Local buffer ...
- do the exceptions in debug disappear if we don't create the dx-level state blocks? =====> nope
- disable all camera controllers when game starts (they're all active right now). Activate them when cutscene starts.
- "mDeltaTM" in TimeInfo => store "30" or "60" instead to avoid division & loss of accuracy ==> forget it
- investigate slow camera motion inside compound => because we hardcoded a "C->SetDeltaTM(1.0f/20.0f);"
* "jump flail" => loop is now screwed up. SIGH.
* but if we run against a console after accessing it the "jump flail" starts... correctly!
=> maybe there's a new "falling" event sent over and over again?
* accessing consoles still doesn't work, we get blocked all the time =====> might actually be fixed now!
- there's still a console bug when jumping immediately after accessing one => blocked ====> should be fixed
- check the weird player up motion in cutscene after console?! ====> should be fixed
- control room console door: check weird vertical motion after accessing it ====> should be fixed
- AI: the enemies don't grab weapons anymore?! => because of the local containers!!! "GetEntries" now return a valid pointer instead
of null! The test must be changed everywhere. Probably used instead of "GetNbFaces" because it has one less division
- camera zoom for people without mouse wheel
- ENGINE: optimize custom lists in IceRMCustomDefs. Creates lots of strings for nothing. In particular the customlist could use static char* instead of dynamically created strings.
- play "watch radio" anim when incoming call? - KONOKOwatch_radio
- INTERCOM: find a way to render it on top of glow?
- render overlays on top of glow
- Puppet master:
	* turrets still shoot us
	* wait a bit after NPC death before returning control
	* make NPC visible when leaving PM
	* can the NPC carry stuff back to player? Figure out what to do when the controlled guy picks up powerups, datapads, etc
	* controlled NPC can't access consoles....
	* AI should react when controlled NPC starts killing them
	* leave npc in suspicious state?
		* when leaving, the NPC can continue running or stay blocked in crouch
	* special anim when starting => doesn't always start
		* we should only start from IDLE, otherwise the player may continue running while the PM starts
	* ban death effect when controlled NPC dies
	* ban inventory
	* restore control when NPC dies
	* leave PM when player dies
	* build the feature on top of already existing "gControlled" feature:
		* we control with the mouse/keyboard current gControlled
		* the "player" is a different character, never changing, i.e. Konoko
		* the AI can target the player or gControlled, if it's different
		* add a digicam effect when controlling a "NPC"
		* when controlled NPC dies, go back to normal player control
- ban file loading after init
	- crash on exit after file access ban
- AI: make AIs run straight when PE data not available
- skybox DDS
--------------------------------------------------------------------------------

People quoting Einstein's "Imagination is more important than knowledge" should use their imagination instead of their knowledge,
to come up with a more creative quote.

Time perception is not linear

Broken window theory applied to code

compile with no sound to save time

--------------------------------------------------------------------------------

* colored energy bar
* slowdown = portal aabb tree creation? ==> nope!
- refactor "mNbCells"/etc code (use powerup enum)
- make health display shake when hit. Shake should be slow-motion-indep
- make camera shake slow-motion indep
- Barabas: revoir camera shaking when death
- AI: I saw Muro do a back flip !!!!! What a bug ! => obsolete
- AI: in suspicious mode, random punch when close to invisible player => behaviour is ok now
- AI: sometimes the striker does a daodan dash when the throw can't be performed => can't happen anymore
- collision volumes instead of meshes ? => naaaah
- bug: PM doesn't work after restarting the level from a checkpoint? => mDeadTime not serialized => should be fixed
- make sure the camera "distance to player" is always properly reset when puppet master leaves
- investigate slowdown in depot 03 ==> "register" stuff, for some reason
- AI: when walking in suspicious mode and colliding with another NPC => don't react!
* "bottom quad color" section crashes => stack overflow
* UnrealSkinWalk crashes at loop time
* UnrealSkinWalk not added to list of files! => because loading "fails"
* barabas energy bar overlaps weapon icon
* display a weapon icon (fading in and out) in the bottom left corner
* display number of ammo & clips nearby ====> check it's reoslution indep
* preload weapon sounds
- textures des weapons en vignette pour sélection
- ICE: select "ragdoll" test and try "select meshes" ===> UI bug ===> var wasn't initialized, that's probably it
- shake boss lifebar when hit => make a shaker class => and clean that code
- #include <cruntime.h> => looks like "crunch time"
- no footstep sounds:
	- for PM npcs
	- for Konoko in compound redux
- NS 275
- fix big lag when taking / dropping a weapon (in depot, at least) -> RMPRSLink?
- APRIL 2009 RELEASE

- prevent kick after initial dialog. Also happened with fire.
- BUG: CreateStateBlock => heap issue debug ==> hmmm, using dmalloc seems to fix it => was a real bug in ReleaseStateBlock()
- the gun laser is sometimes rendered even though the NPC/Sniper can't shoot (the gun goes into the geometry)
	- refactor FindBulletHit() in all weapons, unify with the one in ValidateBullet()..........
- GUN: check why the sniper doesn't shoot us in compound redux ===> because of the capsule tests!
- Fallen striker doesn't react to CrouchKickFW3 attack
- pb with hit foot: it starts again and again if we hit foot while in hit foot.....
- enable hit foot on "left" foot only
- hit foot can be enabled from "back", only the others need "front" attack ==> nah, forget this
- hit foot anim for some attacks of NPCs, for the demo. Ex: some ninja sweeps, or the getup attack from the swat
- check weird double motion ninja crouch + punch ====> happens for all NPCs! (keep shift pressed)
===> that's because the anim for Konoko was in 2 parts!
* there's an obvious slowdown when we shoot (shadow caster?) ====> not anymore
Bunch of issues in test patrolling:
	- move back up the wall and let the AI see us. He stops in (null) state. Very weird.
* revoir pitch limit pour le gun ==> should be fine now
* sometimes when the white flash happens, the character doesn't die immediately ==> obsolete
* make sure enemy characters are instances
* check state machines are still shared
* share state machine using script names, not model names
* share state machines for player select
- different elite strikers "skins" in compound redux
- check FW punch, it works with fallen => and produces a sweep hit anim
- put back stagger anim, maybe not for knockouts - find a way to perform "stagger" sometimes
- GUN: fix #reticles for MB in compound redux
- MB: bug when firing on sky => not solved with a skybox
- KP general: add random button for character selection
- missing transitions for kick/punch/jump on runstart & runstop I think
- black margins too big in 640*480
- remove slowmo on stagger in demo
- rendering issue for console text on health UI
- nuclear tackle sound not interrupted when hit => should be fixed
- land hard in depot when jumping/shift from platform
- one file per weapon
- AI: go to crouch 
- update attack files for NPCs (maybe with crouch moves)
- ninja crouch fwp should be a "fallen" attack
- rising fury on fallen striker sometimes doesn't produce a hit anim => probably because of stagger stuff again!
- Fixed for Strikers, but probably happens for all:
	|Transition	|CrouchFWToIdle			|CrouchFW		|Idle1			|0.1	|42	1	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
	|Transition	|CrouchFWToRunStart		|CrouchFW		|RunStart		|0.1	|0	0	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
	|Transition	|CrouchBKToIdle			|CrouchBK		|Idle1			|0.1	|45	1	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
	|Transition	|CrouchBKToRunBKStart	|CrouchBK		|RunBKStart		|0.1	|0	0	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
	|Transition	|CrouchLTToIdle			|CrouchLT		|Idle1			|0.1	|46	1	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
	|Transition	|CrouchLTToRunLTStart	|CrouchLT		|RunLTStart		|0.1	|0	0	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
	|Transition	|CrouchRTToIdle			|CrouchRT		|Idle1			|0.1	|47	1	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
	|Transition	|CrouchRTToRunRTStart	|CrouchRT		|RunRTStart		|0.1	|0	0	1000	|LAST_FRAME	|0		|0			|INFINITE	|TBLEND_LINEAR	|				|			|				|	|	|
- transition when comguy shift backs and continues back is bad
- SIGH. "LockedCrouch" doesn't work for player while in PM => go to crouch before choosing next character
- snipers really should not go to crouch in the watch towers!!!!!!!!!!!
- "mSniper" bool not restored after a resurrect?
- use a real Sniper model in watchtowers
- random crash now. SIGH.
	- seems to be in GetTargetPointB ??
	===> SHOULD be fixed now
- LOAD/SAVE AI Groups
- CRASH when shooting a sniper, in
	GetFirePoint
	KonokoWeapon::ComputeWorldGunRay
	=> probably AI_Fire when the weapon becomes null
	=> just move the microthread sleep at the end of the loop?
- NS: jump with space key, not punch. Update help text.
- the AI rotating with a gun are too slow, and the arm overshoots => overshoot should be fixed now
- access denied sound for some gameplay-locked consoles
- missing kick/punch/jump transitions in xxx_land anims
- need a small levitation to make NS kick works again on sentinels without the "in flight" jump
- make sure all items don't fall at the same place
- crazy bug where NPCs run in circle behind eachother in demo mode
	=> detect that A is chasing B is chasing A and break the cycle
	=> might not appear anymore with increased rotation speed
	=> seems fixed...
- SOUND: there's really some hit sounds missing...
- demo konoko vs ninja crashes?? ==> can't repro, maybe uses a different Konoko model
	=> probably because "Model ONI_Level1_konoko_body_high.zb2" is used in Konoko_Konoko.txt but nowhere else!
- FIGHT: revoir IMPACT_HIGH:
	* Konoko
	* Striker
	* Comguy
	* Thug
	* Fury
	* Tanker
	* TCTF
	* Elite
	* Thug
	* Ninja
- MAY 2009 RELEASE

- si MB sur getup => dead standing up =======> can't repro this
- there's really a bug where the npc doesn't die but has no energy left (stands still, no collision, etc) => should be fixed, until we see it again
- bug: trackers never destroyed when blocked in corner or can't reach target ==> obsolete
- replace mCanCrouchFire with enum:
	- forced crouch
	- forced stand
	- random
- ENGINE: no need to access the master in scene queries to check the collision flag! <= should be fixed now, unless I missed some of them
- AI: added global timestamp for taunt sounds, to make sure we don't play N taunt sounds from N different characters at the same time
- fixed bug with console unlocking even when player doesn't have a datapad
- MB steam sound
- added thug taunt sound (c17_99_01thug.wav, dont make me hurt you)
- SOUND: sound for exploding monitors => put a timestamp on it      - sprink_hitmult.wav
- added one more taunt sound for ninja
- added zoom sound for digital camera
- check transitions for taunt on run stop
- GUN: unify code in console & BACK key to spawn weapon. (Hardcoded weapon names)
- game over not centered in 640*480
- GUN: make gun pickup easier when a lot of them are at the same place
- hot load dds files
- blood en trails instead of particles? => probably easier to render it to an effect screen <=== obsolete
- Nothing happens when touched by gun while jumping => cf key "2" (hit) while jumping
* Blownup anims:
	* more blownup & stagger anims
	* weird camera zoom motion when character hits the ground after a blownup => because player's head goes below the ground
	* doesn't work on jumps!
	* doesn't work when fallen
	* blownup anim when turret hit character ?
	* "nightshade move" should generate the blownup anim
	* blownup anim after NS kick
	* does it work at all on crouch stuff??? => no, and that includes the suspicious walk
	* blownup after MB hit?
	* blownup reaction to MB
	* daodan dash on suspicious => works? => no
	* blownup anims too low
- GUN: portable mortar
	* disable mortar lock if we are the owner
	* bug: smoke cloud doesn't disappear after explosion
	* reoptimize "GetLockedEntity()" calls
	* stop smoke on impact
	* make it collide against doors, glass, characters, etc
	* no weapon icon for mortar!
	* black smoke
	* check memory leaks for SourceBinder stuff
	* less damage if guy is evading
	* mortar explodes directly on impact with shield, making it difficult to NS kick with a shield => remove shield from raycast?
	* AI should not fire it again before the previous mortar explodes
- GUN: make crate glow when hit by plasma riffle & mb
- Copters:
	* there's still a slowdown when killing a guy when the copter is in the compound scene. Prevent runtime creation of objects to test this.
	=> there's definitely some runtime creation of powerups in the compound scene with the helico
	* save game doesn't work:
		* powerups dropped by snipers not correctly saved => can't repro
		* after starting the copter fight, restore doesn't restore the music (and the boss lifebar)
		* the copter sound doesn't stop at end of fight
		* there's a crash if we die after the copter fight and try to restart from checkpoint
			=> not in Debug
			=> or maybe only after several restores.....
			=> not anymore but character is invisible until it moves => visible again with portals disabled
		* SetRegionChangeCallback => not saved!
	* check what happens with taunt help seq when we restore a game
	* 5 minutes is way too much
	* explosion sound not loud enough when player is far away
	* check what happens when we kill all enemies with the ground attack BEFORE starting the helico
	* black bands during "cut scenes"
		* disable overlays while black margins are enabled
	* boss fires before cutscene starts!
	* enemies active before cutscene starts!
	* exploit: NS kick mortar, then NS kick it again quickly. Possible to reach boss this way. Make a scene where we must cross a hole that way?
		=> achievement?
	* add tips for the taunt
	* prevent NS kicks completely on passengers
	* load/save enabled flag!!!!!!!! weapon/shield/characters/helico
	* prevent taunt when enemies can't fire, else there's a window for an easy taunt
	* copter sound
	* copter rotation sometimes gets inverted... FIXED???
	=> no. Just go on the other side of the room before enabling it......
	* add cutscene when boss starts firing. Maybe play a taunt sound from the boss.
	* add delay when boss starts firing
	* bug: energy bar shakes when we shoot the snipers, not the helico
	* mix sniper rotations, or use foot IK for snipers here!
	* one sniper shot his friend! => disable friendly fire here. Also against helico.
	* when snipers go out, reset their crouch preferences
	* all guys fire at the same time in helico test => put them in a group and have a fire timestamp. Make group by name, not by ID.
	* snipers should "land hard"
	* guys run to weapon/player after losing their weapon => should be fixed
	* jumps from helico after losing his weapon?
	* helico motion
	* glow when hit by plasma riffle
	* they seem to be "surprised" to see player
	* guys in copter don't react well to invisible!
	* they rotate towards us even when we're not visible
	* portal ID not good on blades
	* the crouch stuff is not restored properly
	* jump out when taunted?
	* the taunting stuff doesn't work well. Sometimes they don't react, and sometimes the boss jumps out!
		* it works when you just go under the helicopter..... => test LOS or LOF
		* taunting twice without killing the first guy that jumped doesn't work either
		* seems ok in Debug, and also in Release at 30 hz. Doesn't work at 300 fps => the taunt reaction is not reached in AI_Fire
		* remove taunt printfs
		* rework taunt distance
		* orientation culling for taunts doesn't work
	* prevent boss from leaving copter => probably because he loses his weapon
	* the boss shield protects the other guys too. Not good.
		* move boss to better position in helico
- NS now jumps too high from ground
- ICE: DEVIL wrapper in SystemPlugs?
- there's a small hiccup/lag when the datapad is spawned in compound redux => maybe just creation of clone??
	=> seems to disappear if we grab some powerups before, suggesting that recycling a powerup is fast while creating one is not
	=> must be the "CreateClone" call, does a HUGE amount of stuff, esp in Scene::Register()
	=> maybe we should just pre-create all of them?
- weapon overlay not correctly displayed in 640*480 => issue is probably that health displays are always rendered with the same size!
=> but the code drawing the weapon icon is actually fine.
- SOUND: problem with laser wall sound in "inside compound". Seems not to start/end when it should
	===> maybe because the same sample is used and we change its volume??? Oh dear, might be a global issue :(
	Might need to create a sound instance each time we play a sound, and use this instance (channel) to change volume?
	==> disabled sound for now
- write something to detect frame memory leaks immediately
- fix mess "hide/show" between RMHelper and RMSegmentedSkeleton
- Muro face glows too much
- monitor screens are now dds files
- GUN: replace bools with flags
- disable ground attack
- BAD HARDCODE:
	else if(mCharacters.GetNbEntries()==1)
	{
		KonokoCharacter* KC = (KonokoCharacter*)mCharacters.GetEntry(0);
		ASSERT(KC->mBrain.mLeader);
		KC->mBrain.mPreventFire = false;
		KC->mBrain.mAIGetupFireTimestamp = MAX_FLOAT;
	}
- RegisterOpponent() in game restore doesn't work since characters are already marked as registered. Better to just save/restore
the sound/boss system separately
- CHECK what happens when we die just before a dialog starts (i.e. while the "incoming call" stuff is on)
====> well nothing good, the sound continues in the game over screen and after restarting, never stopping
- GAMEPLAY: items to collect
- tri des fx quads en alpha
- use xbox achievement bitmap & sound
- "bonus" helpers
	* sort them (use bool TEMPLATED_MANAGER::Remap(const udword* ranks) ?)
		see bool BillboardManager::Render(Renderer* rd, float global_time, float fade_length)
	* "get them" immediately if there is overlap
	* attraction effect
	* sound when collected
	* on-screen counter
	* put them in places when player has to crouch or double jump
- Achievements:
	* helico defeated
	* kill snipers in compound redux (might be possible only when replaying the game with a cheat, à la GITS)
- JUNE 2009 RELEASE

- remove SUPPORT_SOUND_INSTANCES and clean code
- added achievement stack
- Achievement:
	- friendly fire (make a sniper kill a NPC)
		- "friendly fire" achievement works even when they shoot a dead guy
	- devil kick on 3 enemies
- disable lock on throwed characters?
- sound & text when reaching checkpoint
- SOUND: "stronger & stronger" sound not interrupted if thrown
- And lastly, why can't I configure the arrow keys as movement control? I'm left handed and I got used to it in Oni (ONi? tongue )
I see it reserved for something, is that necessary? =====> seems to work...
- check why redefined arrow keys are labelled as "undefined"
- check why Barabas (e.g.) has duplicated textures
===> arrrgh seems like all characters have duplicated textures, esp the robot!! insane waste of space!
- disable raycasts on invisible "cubes" around characters
- trail on comcompunchheavy
- use new shinatama face (& others)
=> only thing is, we need to replace those multiple times because the source textures are multiply defined!!! :(
- compound snipers are not there anymore!?
- the BV when in crouch but with a firearm should be a bit bigger, to avoid going completely through barriers
=> we now automatically switch off the weapon
- some transitions are now banned when in "locked crouch", e.g. inside a ventilation duct
- added support for "multiple surface sounds" per texture
- "ONI" sprites with shadows on title page
- can't pick up hypo in Depot if we have a weapon (e.g. riffle) in hand
=> because of that line:
	// In "locked crouch" we automatically disable the weapon, else it goes into geometry...
	if(0 && IsSet(CHARACTER_LOCKED_CROUCH))
	{
		key_state.mWeapon_ = false;
		mUseWeapon = false;
	}
- pressing X, weapon is dropped from too high in crouch
- put dash back
- skybox = f(region) + skybox culling
- "steady cam" is now the default camera model
- time dilatation to fix the jump pb
	Jumping "gravity":
	Well, its up to you, I guess.
	http://www.youtube.com/watch?v=CiDDBCEsD5I
	With the height Konoko is going, she isn't staying in the air long enough, IMO. How are you calculating her fall speed?

	Konoko's jump physics aren't quite right. She comes up and goes down too fast. Was that done on purpose? Setting Gravity to -300 seems to fix it for me. Though losing forward velocity when you jump isn't conductive to good parkouring. Lol.
	Konoko's jump animation is sideways. wink
- fix camera rots for NPCs in jump anims
- "End game" crashes 100%
	if(mGameObject)		probably already deleted
		mGameObject->OnDeselection();
- "I have a question...  How do you get out of it?  Lol.  ESC didn't do anything, F1 and F10 didn't do anything (dunno why I tried
	 those) and Alt+Q didn't do anything so I hit Alt+F4.  Maybe a bit dramatic, but I was out of ideas."
- add a way to go back to the menu!
- does pause work when there's an impending intercom? => no
	===> but what about the inventory????????????? => doesn't either, and it actually creates a bug (can control player while in inventory)
	==> for the pause it doesn't really matter. For the inventory we can prevent it when there's an impending call. Same for the
	pause screen.
- camera: smooth steady camera when going to crouch
- walljump should be available a tiny bit longer against a wall
- add "land hard" for side wall jumps
- if killed while platform sound is on, it doesn't stop when restarting from checkpoint
- platform sound doesn't stop when restoring
- check again file MTF weird bugs
- MTF stuff might work now!! ====> nope! WTF!
- ENGINE: MTF files: maybe bug because two files with same names appear in different dirs ==> exactly
- disable nightshade attacks on NPCs completely? => naaah, that would be unfortunate
- some attacks from elite striker should have a fixed rotation
- ENGINE: validate a path (make sure it exists) before storing it
- check PathFileExistsA
- are all the registered paths bottlenecks? Is it slower to find a file? => doesn't matter much now
"Jumping:
Here is something to try, then. Run forward, jump, when you land, jump again, etc. Soon you will find that you are jumping straight up, even though you hold the forward key."
//	|Modifier	|JumpIdle		|-			|-			|-			|-			|JumpIdleFW	|-			|JumpIdleBK	|-			|JumpIdleRT	|-			|JumpIdleLT	|-			|-			|-			|-			|-			|
==> modifier doesn't work because while the anim is modified, the impulse is the same as before!
- make sure footstep sounds are correctly played on two similar textures exported from two different regions => should be ok
- make dash actually jump longer
- "Depot03" not very visible anymore
- while the helipad platform goes does, have a message from Shina not interrupting the game? (like "it looks like a trap" or something)
	- remove Konoko banner, don't pause game, don't display incoming message
- check size of player in float units => ~15
- demo mode now crashes. Maybe Recast stuff.
- CRASH: AI SingleMode with TCTF, S
- Recast: enable straight path when nav mesh is missing
- try "recast" pathfinding lib
- BUG: RisingFury achievement can be unlocked when doing other special attacks in PM !!! =====> should be fixed now
- finish SM export, export IK & Attack data as well.....
	* needs to refactor sound stuff before
	* check why walljump doesn't work
	=> doesn't look good!!!!!!:	
	|Transition	|JumpCrouchToJumpLand	|JumpCrouchFW	|JumpLandFW		|0.1	|92	0	1000	|10			|5		|0			|INFINITE	|TBLEND_LINEAR	|0.0 0.0 0.0	|-			|kon_land_con2.wav|1.0|100.0|
	|Transition	|-						|JumpCrouchFW	|BodyProjectionE|0.1	|92	0	1000	|30			|5		|0			|INFINITE	|TBLEND_LINEAR	|0.0 0.0 0.0	|-			|kon_land_con4.wav|1.0|0.0|
	* Also bad: TCTF Throw Targets contain duplicate STR transitions!!!
- les NPCs ne savent pas récupérer les guns sans pathfinding... => should be ok now
- sound emitters
	* no need to put them in a SAP, we need player vs all emitters only
	* sound occlusion using gaussmaps?
	* stop sound when volume is null
- inside ventilation:
	* sounds from GITS
		* find a way to have their volume "normal" even though we're "sneaking"
- AUGUST 2009 RELEASE

- investigate the painful "falling+land" anim when jumping from top of hangar in Compound Redux
- Muro pissed off => remove Konoko banner (also for Shina after finding the door code)
- missing transitions from idletmp
- add some jump impulse to the hit anim on NPC, after a Crescent Moon => quite fun with +60
- "vertical impulse": only when not staggered
- AI: put 2 new combos in AI profile!!
- fixed AI issue:
	- AI screwed up! Runs in circle in SingleAI test!!!!!!!!!
	=> because of "AIUpdateFrequency", for some reason
	=> that's a red herring, there's something fishy elsewhere
	One problem is that we don't run the AI threads all the time, but when we do we use "mTime.GetRelativeTime()" 	which is a shared static variable
	updated each frame, so the delta is wrong
- fixed crash when sound init failed?
- lighting is screwed up!!?!
	==> pb with vertex colors I guess
	==> looks like a driver/HW issue so far
	==> nope, aliasing stuff. Both fail:

	//				*Pool++	= *(float*)&Diffuse;
	//				*Pool++	= (float&)Diffuse;

	You need:
					udword* tmp = reinterpret_cast<udword*>(Pool);
					*tmp = Diffuse;
					Pool++;
	OUCH.
- BUG: try to go back to the menu when slowmo death is enabled........... surprise!
- Pathfinding does not work!!!!!!!!!!!!!!
	==> probably because recast files should be in cache directory
- try to emulate FMOD init failure
- crashes when pressing a button => sound stuff
- court moins vite avec une arme (speed = f(weapon)) => maybe implicit in the motion graph
- try to leave while in digicam... then restart... digicam mode still enabled!!!
- amazing bug:
	- play the prototype to the end
	- play the game => there's no collision with the helipad platform!!
- easier repro:
	- load "temp2"
	- load "corridors" => no CD on platform & door
	===> doesn't happen with "free objects", so it's probably the octree
- crashes here, probably double delete:
	Transitions::~Transitions()
	{
		// Free transitions
		MotionTransition** TransList = (MotionTransition**)mTransitions.GetEntries();
		for(udword i=0;i<mTransitions.GetNbEntries();i++)
		{
			if(!TransList[i]->mShared)	// SHAREDTRANS
				DELETESINGLE(TransList[i]);
		}
	}
- CRASH:
	- load game, exit
	- load Level10 redux
	=> skybox...
- BUG:
	- play demo
	- back to menu, single AI test => black screen!
- CAMERA: camera ray goes through lattes des stairs => lame motion => collide them with CD polygons?
==> not anymore since we use swept sphere
- fix that annoying bug where a dead guy CCT collides with the player's CCT, making the NPC levitate
- when NPC falls on player, make player fall - and vice versa
- BUG: remove disabled characters from throws!!!!
- Platforms:
	- NPCs jitter on moving platform. Unify this stuff.        <= fixed but needs to be optimized
	- dead guy on platform will jitter when platform moves     <= fixed but needs to be optimized
	- the platform fixup thing looks weird anyway, seems there's no limit to the raycast. So you can be one kilometer away from
	the platform and be influenced by it? TEST: put a character above a moving platform on some other fixed element. Does the
	character move "up" with the platform? I think it would...

		- put platform bbox in SAP, increase a bit vertically (up)
		- when character collides with it, activate raycast
		- limit raycast to size of character + small margin
		- apply fixup if ray hits
- press ESC again after pressing ESC => same as "continue"
- GAMEPLAY: contact shina à la MGS2
- help text when user is lost for postit ==> or just call shina for help
- Helico:
	- helico help is now explicit, through the help system
	- disable taunt help seq when shooting one sniper? ===> not needed anymore
	- the guy jumping out of the copter should go to you and fight, else there's not much difference between this and before.
	He's taunted so he should be willing to teach you a lesson. The others should stop shooting? (maybe for some time only)
	On the other hand if you fire at one guy and he falls down, maybe he can keep the current behaviour.
	- Helico: after killing the sniper out of helico, put a timestamp to resume fire from the helico
	- Make helico fight easier, no cheap death => should be much better now
	- play sound when sniper is taunted and jumps, like "I'll teach you a lesson". Maybe just a taunt sound.
	- Pressing INVENTORY when the camera zooms on the helico produces a pause...
- sound when postit is captured => not needed anymore
- cutscene (camera) on captured postit? => yep
- instead of postit glow, display captured picture in a polaroid on screen => canceled
- glow postit when detected (if it works with the digicam filter) <== but doesn't work behind the glass! ==> replaced with cutscene
- Better for Depot sniper:
	if(mCurrentWeapon->Fire(mTime, &TargetPt, !IsEscaping && !mBrain.mSniper))
- unbreakable rising fury & devil spin kick
- "this sure looks like a trap" starting when player is dead!!
- Shina banner not properly restored => just disable intercom, like when game over starts
- no blood puddle when falling in helipad pit??? ==> appears after a while but not moving!!! big bug
	==> appears correctly the first time, but it's broken after the first restore
- Generic help: tell that super moves are unbreakable
- when playing the "postit cutscene" the digital camera filter is still visible
- if we restore when a cutscene is played, the cinematic margins appear briefly => not possible anymore
- list & enable AI groups in console
- Character loops: remove "disabled" characters from them! (e.g. hidden snipers from helico)
- ICE: Get4x4IdentityMatrix() => returns reference
- GUN: gun management as in Oni (hide gun when not using it) => HIDE_INACTIVE_WEAPON
	- doesn't work great yet. mUseWeapon not reliable for AI. Appears & disappears all the time. Maybe keep weapon visible all the time for them? Check Oni for this <== they do exactly this
	* don't detach the weapon when hit, if hidden
	- FUCKING BUG WHEN TAKING THE NPC'S GUN!!! => just run the AI test and disarm the guy... 100% repro
			=> because of HIDE_INACTIVE_WEAPON (confirmed)
- New bugs probably due to HIDE_INACTIVE_WEAPON:
	- can't shoot anymore! => laser is not rendered as well
	- weapon rendered when invisible, then become visible again
- test load/save hidden/invisible weapon status
- weapon visibility issue if pickup weapon while invisible
- check again load/save of cutscenes, esp the new "cutscene has been played" bool => now saved
- bug: some cutscenes don't start after restarting the level from a checkpoint? => should be fixed now
- BUG: open "postit" door, restart from checkpoint before => blocked
==> cutscene's "has been played" bool not saved? => yes
- blur screen on camera shakes
- PM:
	* only possible on idle NPCs (incentive for sneaking). Else they might get staggered? (motion where they take their head in their hands)
	- "Press the ATTACK key to leave PUPPET MASTER mode"
- HELP TEXT FOR BLOCKING
- Fight: au lieu de bloquer les attaques déjà portées on peut réduire leur damage value... ==> well we do both now
- FIGHT: shouldn't be possible to just do one-time punches over and over again against an NPC... he should block (or react)
=> maybe should block known moves for ~5 seconds or so
=> works more or less ok (RECORD_KNOWN_ATTACKS_DELAY)
- crates passent à travers les portes
- console: enable physx visualization
- have a different AIGroup file per level
- disable initial elite strikers when helico starts
- BUG: a guy in PM can hide his weapon. If he dies the weapon becomes unreachable.
- BUG: in Depot03 in PM, the controlled guy doesn't lose his weapon when going down
- heavy bug:
	- Depot03, get weapon from sniper, etc. Restart level. Press A. You still have the weapon but it's invisible.
	==> only if weapon is invisible (not used) when we restart
- missing sound in intercom when using keys. Sound ok with mouse.
- is there a user prop to discard vertex colors? Use it on megots and glass light
	=> well ok there's indeed "DiscardVertexColors" but it gets called *before* the surfaces are initialized, so it doesn't work!
	=> there is "flx_discardvtxcol" directly in Flexporter
- BUG: in PM, a guy has a weapon, hides it, then leave PM => weapon remains hidden
- the floating panels have a problem
=> because of new glow pipeline, likely this line:
	const bool Opaque = (id==PIPELINE_OPAQUE || id==PIPELINE_USER);
- CRASH: apparently in DecreaseHealthAndPlayEffect. Repro in ComputerRoom when landing on a console.
- BUG: "talk to civilian" text appears even when they're down!
- BUG: NPC lying down, they can still "block" and generate blue impacts!
- fix red pixels around overlays:
	* ONI letters
	* character heads in dialogs
- ragdolls don't work on instances?
- BUG: crates hoover in the air after restoring in demo level????
- BUG: display console text, press ESC, continue => pause is off
- BUG: minor: start dialog, press ESC, continue => pause is off
- BUG: while going to console, press ESC, restart from checkpoint => bad thing happens
- BUG: zoom in, become invisible, use digicam, leave digicam => character is now visible
- Gravity gun:
	* put more weapons and ammo in the test scene
	* disable when weapon off
	* hide ammo count
	* crates
	* reset FX when ragdoll starts
	* make sure AI doesn't use it
	* fix bug where CCT doesn't stop moving and shadows get screwed up
	* make pushing mass-indep
	* use gun, not riffle
	* reset ragdoll => needs to make it run without reset pivot for this
	* fix crate-in-the-air-bug
	* gun impact on ragdolls
- camera should follow player ragdoll when dying
- turret hit should push ragdolls
- reset ragdoll when "continue"
- investigate why "ROTATE" doesn't work for Tankers PPP ===> it does, but only when opponent gets knocked out
- Missing sounds when:
	* drawing a gun
	* picking up an item => a gun, in fact
- regenerate crate strength when they're not touched by a laserwall anymore? => already like this
- remove "fake death"
- BUG: in machine room in PM, die, go back to Konoko => sound doesn't change
- red flash/blood when falling hard?
- play sound or give some feedback when trying to PM an active character
- Bonus: put one in the bottom of helipad => must use PM to catch it!
- put some more guys in "inside compound" when music starts?
- APRIL 2010 release
