View Single Post
Old 28-11-07, 14:42   #1594
Join Date: Dec 2005
Location: Russia
Posts: 491

New patch: add textbox into SECRET_MAP slot

This patch utilizes unused SECRET_MAP slot for special nullmesh object that will pop-up text message, when Lara presses ACTION key in front of it. Text message can be ANY string from STRINGS2.TXT file - just put string number into OCB, and it will show corresponding string. Additionally, you can set-up two different on-screen placements for your text - bottom (like in Resident Evil games, useful for short messages and infos) and center (if info / message is too long to fit onto bottom).

To select center or bottom placement, add 10000 to OCB of corresponding SECRET_MAP object. Examples:

OCB 5 - will render STRINGS2.TXT string number 6 (because first string counts as 0) at the bottom part of the screen.
OCB 10005 - will render same string, but in center.

With this patch, you now can put TONS of text in your game, you literally can turn your game into text quest... You can put these nullmeshes near every single object, static mesh or wall of your game, and game will give text comment about corresponding object/static mesh/wall/etc., like it is done in Resident Evil.
Remember that you should texture this nullmesh object with transparent texture, or it will be visible. To edit object interaction zone, just edit bounding box in FexAnim. Note that Lara will activate this object in any case, even on the run or with her guns drawn.

Use it carefully, because i don't sure if there are any bugs left... Basically it uses heavily-modified and simplified code from puzzlehole, maybe i've removed something i shouldn't remove... Anyway, test it.

If you want to get rid of some nullmesh text objects, you of course may kill them with KILL_ITEM command. Just remember that it'll take some time for item to fade-out and disappear.

CRITICAL: Make sure you're using latest syntax.fln file from TREP homepage, since i've found a bug which prevented KILL_ITEM command execution, if Lara was not a first object in your level!

Originally Posted by aktrekker
it should be possible to still use the force feedback joystick with the DX6 calls even if the driver is DX8. DirectX will translate the calls as required to make them work.
Hmm, very interesting... But how DX can allow application to use newer functions, if application initializes older interface? I. e. if device is created with DirectInputCreate (not DirectInput8Create), how DirectX will allow to use DirectInput8 functions for it? Is it some kind of forward-compatibility?

Originally Posted by aktrekker
You can't just do a search for all DirectX calls. But you can do a search on the variables used to point to the DX objects. Pointers to the objects are stored in a structure. Sometimes they are used directly, and sometimes using a pointer to the structure.
But this structure have dynamic address, right? It is stored in [754468], this value points to other address, where sub-pointers are stored... There are just too many pointers that are referring to pointers, and these pointers also refer to sub-pointers... It drives me crazy, but i'm slowly getting used to it... Still, it's impossible to do anything without some reference (at least include file) to all these functions.

Last edited by Pyuaumch; 28-11-07 at 15:17.
Pyuaumch is offline   Reply With Quote