Quantcast

Jump to content

» «
Photo

[HELP]: SaveFile ENEX Connections

34 replies to this topic
ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#1

Posted 17 June 2008 - 08:36 AM Edited by ATHMystikal, 17 June 2008 - 08:55 AM.

Hi guys,


I have some questions about savefile ENEX connections

1. Why the savefile ENEX connections are necessory
2. After some missions, some more ENEX entries are added. What are they
are they some new burglary markers. But why they are not added at beginning like other buglary markers which exist from the beginning of game?

3. when I read GTAModding.com page on save file formats, the format is given like this.Afetr BLOCK it is immeduately followed by

CODE

 0    dword           count
 4                    array of words
----

And this is followed by enex connection data

What does that mean. In some savefiles, there are 6 bytes before actual connection begin.

424C 4F43 4B 0100 0000 B100 0000 0440 3701

And in some savefiles only 4 bytes before the actual connections begin.

424C 4F43 4B 0000 0000 0000 0440 3701


Data in green="BLOCK"
Data in orange=Those tricky bytes
Data in blue=First ENEX Connection

What is this???

Both files are original savefiles. That means no extra enexes are present in them.
One savefile is older and other is a recent save dont know which one is older.


xmen
  • xmen

    Foot Soldier

  • Members
  • Joined: 02 Jun 2005
  • None

#2

Posted 17 June 2008 - 01:48 PM

QUOTE
1. Why the savefile ENEX connections are necessory

it just save target number and flags, dunno why R* do that lol.gif

QUOTE
3. when I read GTAModding.com page on save file formats, the format is given like this.Afetr BLOCK it is immeduately followed by


ah i see, i had that problem when i was working on SGU(thanks to OrionSR) and forgot to update gtamodding, here is what you need
first read 4 bytes (useless)
then read 2 bytes (if value != -1) then read next 2 more short variables (2 * 2 bytes) else break the loop

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#3

Posted 17 June 2008 - 02:56 PM

Thankz for reply.
But i still didn't get it.

Why some have 6 and some have 4 bytes before connection data.


When i explored the savefiles, what i understood is:

Read first 4 bytes as UInt32

if(value==0) then actual data imeediately follows it
else
read another UInt16 and disacard it. actual data is after that.

Am I right. I got it right correctly so far doing like this. Sometimes the last read 2 bytes have different values which has not much relation with number no of connections.

And I am now checking if it has any relation with additional ( newly added by game) ENEXs. Still found nothing.

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#4

Posted 17 June 2008 - 05:07 PM

I suppose I should double check, but IIRC, that first word is set to 0 if CJ has saved outside, or 1 if saved inside, and the data that follows is the index of the enex used before saving.

All fixed burglary doors are in SF or Bayside. Those extra connections that get created and destroyed on occasion are the burglary doors that are created in other area. They come and go, and saving at night seems to catch more of them in the save file. They'll get dumped and replaced when the save is used again.

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#5

Posted 17 June 2008 - 05:29 PM Edited by ATHMystikal, 17 June 2008 - 05:52 PM.

QUOTE (OrionSR @ Jun 17 2008, 23:07)
All fixed burglary doors are in SF or Bayside. Those extra connections that get created and destroyed on occasion are the burglary doors that are created in other area. They come and go, and saving at night seems to catch more of them in the save file. They'll get dumped and replaced when the save is used again.

So you mean even if we delete those entries from savefile, they wont affect the game play (as long as checksum is correct) ????

QUOTE
I suppose I should double check, but IIRC, that first word is set to 0 if CJ has saved outside, or 1 if saved inside, and the data that follows is the index of the enex used before saving.


So if saved outside no enex is stored. So 4 bytes before data.
If saved inside that particular enex should be store so 4+2=6 bytes. Am I correct?

EDIT: You are right OrionSR. Its just as you said. I've tested it on about 25 savegames and they all crrespond to it. The games which are saved at 'four Dragons' and 'Tierra Robanda' have only 4 bytes.(thats the only outside saved files i have). And others which are saved inside have 6 bytes. The first 4 bytes act as single UInt32 and take 0 or 1. If 0. Then it is outside and there is no 5th and 6th bytes. Otherwise 5th and 6th form a UInt16 and indicate the ENEX entry in savefile.

Thanks for your help icon14.gif icon14.gif

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#6

Posted 18 June 2008 - 01:36 AM

I haven't tried anything as drastic as deleting the temporary burglary links from the save, I usually just work around them. I wouldn't be surprised if they could be deleted safely, but that would require resizing the save file and I usually try to avoid that. A more interesting experiment is whether or not it's possible to add new links by editing instead of starting a new save.

I got to thinking about the interior saves and that structure at the beginning of the enex block. The Chain Game saves I set up have the LS Big House attached to the inside and outside door of the north roof of Caligula's - it's kind of weird but I wanted a Penthouse Suite. Anyway, I ran a test when CJ enter Caligula's, then used the Penthouse enex to get upstair, and finally entered to save at the LA Big House which has the save disk moved from the Queens Interior. All three links got nested before the LSPD enex is listed.

CODE
03 00 00 00 91 00 F2 00 F4 00 00 00 04 40 37 01

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#7

Posted 18 June 2008 - 04:38 AM

Oh, I see,

So the first four bytes must be indicating how may save chains (didn't get a better word). Let it be X. So then there will be X*2 bytes follwowing it before the real ENEX info. Am I right???

Does something like this happen within normal game. I mean the chaining of safehouse ENEX? I need to do this because I am developing an ENEX add/delete tool dozingoff.gif

QUOTE
The Chain Game saves I set up have the LS Big House attached to the inside and outside door of the north roof of Caligula's - it's kind of weird but I wanted a Penthouse Suite. Anyway, I ran a test when CJ enter Caligula's, then used the Penthouse enex to get upstair, and finally entered to save at the LA Big House which has the save disk moved from the Queens Interior.


I didn't uderstand it completely. But seems like a brilliant idea. So here is what i got.

You get into calligullas's ENEX (roof) but you will be transportd to LS Big House.
and vice versa.


OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#8

Posted 18 June 2008 - 05:14 AM

You've got the right idea. However, I don't think "save chain" is exactly right. I suspect the game always tracks the "enex chain" (?) as CJ moves about, but generally you don't get to see it in the save file except after a save. The example I can think of in game may not apply, but when time runs out during burglary CJ gets spat out the last door he entered. So perhaps the enex chain is the way out to the real world when this command is used.

No. There are no standard examples of a save nested in an enex chain. However, some people use a save anywhere mod or show save screen cleo script so you still might run into an enex chain longer than 1.

I'm not sure I can explain it properly, but the Chain Game Round 29 just finished up 100% in case you want to look for yourself. You'll need version 2 scripts to run it. http://gtasnp.com/11101






ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#9

Posted 18 June 2008 - 08:36 AM Edited by ATHMystikal, 18 June 2008 - 08:40 AM.

I tried to add some (about 6) new ENEXs to an existing 100% save. and used my tool to update the savefile. This removed any extra Burglary ENEXs (I had 10) which were present in the actual savefile.

Then I started game and loaded this savefile. Viola!! No problems biggrin.gif . Almost Every ENEXs works without any trouble (I checked about 40-45 and they worked). The newly added ones are also working. I checked some Burglary ENEXs in bayside also. I found no problems at all confused.gif .

So may be those saved/cached extra ENEXs may be of no use. and we could simply erase them. Oh no then why R* added them?? dozingoff.gif

EDIT: The block immediately following BLOCK 25 is Radio info. So i am trying to check if deleting those ENEX entries have any effect on Radio.

EDIT2: Checked for a long time. But every station works. Dunno if the live news are working (which descuss events going on in game)

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#10

Posted 18 June 2008 - 10:07 AM

OrionSR:
I made a change in my tool. Now it can succesfully add ENEX to savefiles containing 'nested ENEX safehouse entry' and update them. I will upload it shortly.
Thanks for ur help!

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#11

Posted 19 June 2008 - 12:48 AM Edited by OrionSR, 19 June 2008 - 12:55 AM.

Interesting. I figured the nested links wouldn't be too much of a problem as long as a reliable description of the properties was available. I suppose I should update the Wiki for SA Save Files again now that this data have been described and verified.

My theory on the extra burglary enex connections is that this is the method used to put burglary doors all over the map. There are lots of fixed burglary doors in SF, and 4 in Bayside. All the doors in LS and LV, and quite a few in SF as well, are all created and destroyed somehow. I suspect the clock plays a roll, and somehow CJ current location, but I've got no idea of how the other enex doors are placed. There doesn't seem to be any data. I haven't been able to find enex data in IPL streams. Perhaps the doors objects themselves play a roll in placing the temporary enex links.

Just a reminder in context: There's a memory limit of 400 enex links and most of them are used. If you add too many new links there won't be room in memory for the temporary burglary links.

BTW, I've got some memory dumps from PS2 in case you want to poke around and see if you can learn something by examining the temporary burglary links in active memory.

And while I'm thinking of it. The X and Y radius values described in IPL documentation appears to be applied to the exit location.


Here's my description of the enex information in memory. This is taken from my PS2 Cheat Creation topic where I've been experimenting with changing the enex links with cheat codes that alter active memory.
CODE
0x00 character[7]        Name of Enex string
0x07 byte                nul terminator of string (00)
0x08 float               X1 - X in Coord
0x0C float               Y1 - Y in Coord
0x10 float               adjusted X out
0x14 float               adjusted Y out
0x18 float               Z in Coord + 1.0
0x1C byte[4]             (unknown) possibly related to unknown Rot1?? (some IPL values appear to be radian) - cannot decode
0x20 float               X out Coord
0x24 float               Y out Coord
0x28 float               Z out Coord + 1.0
0x2C float               Out Angle
0x30 word                door flags
0x32 byte                Interior number
0x33 byte                Sky
0x34 byte                Time On
0x35 byte                Time Off
0x36 byte                I2 (unknown)
0x37 byte                (unknown)
0x38 dword               destination address



If you use the PS2 memory dumps at my host at filefront the enex data starts at offset:

NTSCv1: 00C986B0.
NTSCv2: 00C99230
PAL: 00C987B0

http://hosted.filefront.com/OrionSR/

Does your tool resize the enex block? Are there any problems associated with resizing the block and save file in order to add new enex data?

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#12

Posted 19 June 2008 - 05:05 AM Edited by ATHMystikal, 19 June 2008 - 07:46 AM.

QUOTE
Does your tool resize the enex block? Are there any problems associated with resizing the block and save file in order to add new enex data?


Resize blocks,Yes I think and found no problems yet. But didnt understand the question.So I will explain what my tool does

When ENEX is added and savefile is updated, my tool will write new ENEX Entries at requred positions (not a last position only). ie, it can add enex at intermediate positon too. When update button pressed, the new ENEX numbers are calculated and new connection data is created(because new destination IDs must be calculated) and they are written in BLOCK25. Only the IPL enex are written. After that, I will write BLOCK26 immediately after that. So any existing extra burglary ENEX are lost. And everything after that, till end of BLOCK27 are also written. Then remaning data are repetetion of 0xC800 bytes before that. Is this the way it supposed to do?
However it works for me.


And about the information you provided. Sorry I havent played SA on any consoles. I have only a PC version. I dont have PS2 or Xbox sad.gif sad.gif . So i dont think that info is useful to me.

QUOTE
Just a reminder in context: There's a memory limit of 400 enex links and most of them are used. If you add too many new links there won't be room in memory for the temporary burglary links.


I knew it, but at present my tool will not check for limit. This is to find actually how much we can add. BTW how that number 400 comes into scene. When i see the savefile, there are lot of space wasted after BLOCK27. And each ENEX id is 4 bytes long. So it can go beyond 0x018F .
Also my tool can delete existing enexs So we can make room for new ENEXs by deleting unwanted existing ones.


Thanks for your warm reply smile.gif


EDIT: I've read somewhere that somebody succesfulyy added about 70 new ENEXs mercie_blink.gif . Is that true?. Is the 400 limit comes from memmory limitation (RAM) or savefile space limitation. In former case will SALA can fix it right??

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#13

Posted 19 June 2008 - 07:51 AM Edited by OrionSR, 19 June 2008 - 07:54 AM.

Thank you. The description of your tool answered my questions.
QUOTE
Then remaning data are repetetion of 0xC800 bytes before that. Is this the way it supposed to do?

I think this is correct; whatever is described in the Wiki is probably the least risky method of extending a save file. However, when I was confronted with manually patching saves with a lot of padding I experimented with flooding the slack with FFs without any observable difficulties.

I suspect the PS2 memory dumps correspond in kind with PC memory - similar information, different locations. I haven't investigated PC memory so I don't have anything to offer. I found it interesting to see how the enex information is used in memory but it probably won't make too much difference for your tool.

The limit of 400 enex connections comes from active memory. There is room for only 400 enex connections unless you use something like a limits adjuster. I observed the size of memory in the PS2 dumps, and on PC I tested the limit by adding lots of dummy enex lines and checking how many got saved.

If your tool deletes some of the extra enex connections then you will also need to adjust the IPL entries in order to maintain the proper sequence of IPL entries. Changing the default sequence of IPL entries will scramble the links on standard saves. Changing the IPL line and then remapping with the tool would help maintain compatibility with existing and downloaded saves. Keep in mind that there is a 1 to 1 correspondence between the source and destination index IDs and the sequence of the current list of enex lines in the IPL files.

If you remap the links with an enex tool without altering the IPL line for that enex the wrong interior/zone names will be displayed when using the link. For the most part this isn't a problem but if the link is to an interior with... (how to put it?) with active character scripts (barber, tattoo, clothes, fastfood (?), ammu-nation) then those scripts will not run unless the text identifier matches the appropriate interior.

That probably didn't make sense, so here's an example: If you change the Fort Carson ammu-nation link in the save to the unused ammu-nation then the guy behind the counter won't be present to sell stuff unless the IPL line for the Fort Carson link is changed from AMMUN3 to AMMUN4. However, the Ammu-nation challenge mission is still present.

BTW, will your tool also allow the user to activate doors and adjust the door flags so that cars, bikes, or NPC can use the links?

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#14

Posted 19 June 2008 - 10:29 AM Edited by ATHMystikal, 19 June 2008 - 10:42 AM.

QUOTE
If your tool deletes some of the extra enex connections then you will also need to adjust the IPL entries in order to maintain the proper sequence of IPL entries. Changing the default sequence of IPL entries will scramble the links on standard saves. Changing the IPL line and then remapping with the tool would help maintain compatibility with existing and downloaded saves. Keep in mind that there is a 1 to 1 correspondence between the source and destination index IDs and the sequence of the current list of enex lines in the IPL files.


yeah my tool does it correctly. There is still 1 o 1 currespondance with source and destination IDs. Here is how it works:
When you add an ENEX, it is added to specified IPL. If some ENEX is deleted, it is removed from that particular IPL file which contains it. After rebuilding the altered IPLs, the tool will calculate new ENEX IDs for all remaining ENEX entries after edit. Then it will call a function to find matches, then they are connected with approapriate macthes and a new data structure conatining Source ID, Flag, Destination ID is created (just like in savefile). the new ENEX numbers are calculated on the basis of order of ENEX in the IPL files. So the exact oreder is preserved. This part of program is the most complex. It took 1 week to do that single function. confused.gif

Then the created data structure is written to savefile(as explained in previous post).

And before editing anything, the flags for each existing door is saved.and later they are reassigned approppriately. So the doors which are locked at the time
of that save stays locked and which were unlocked satys unlocked. So this means my tool will not ruin the gameflow colgate.gif

But newly created ENEX are always unlocked.

However I have almost finished beta2 and will upload it within 24 hours. It has the ability to lock/unlock any door at wish wink.gif

QUOTE
BTW, will your tool also allow the user to activate doors and adjust the door flags so that cars, bikes, or NPC can use the links?


Thats a good idea. I will include it in next version(not beta2).

One of the most sad thing is nobody who downloaded my tool gave me a feedback( well except Xmen- he found a bug and reported and I fixed it. He also gave me some advices. Thanks). So I dont know whether its working well for others sad.gif .

If you are interested why dont you just try my tool.Download it here
DOWNLOAD

After all its not as bad as I thought sigh.gif

EDIT: I was thinking about how the scripts lock and unlock ENEXs.I know that they are doing it. So if the opcode specifies the ENEX number to specify which should be locked/unlocked, my tool may cause problems. Because when you delete ENEX, the ENEX number of all ENEX following it are altered.
So do you have any info for me on this??

Thanks again: God Bless You

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#15

Posted 19 June 2008 - 04:51 PM

QUOTE
My theory on the extra burglary enex connections is that this is the method used to put burglary doors all over the map. There are lots of fixed burglary doors in SF, and 4 in Bayside. All the doors in LS and LV, and quite a few in SF as well, are all created and destroyed somehow. I suspect the clock plays a roll, and somehow CJ current location, but I've got no idea of how the other enex doors are placed. There doesn't seem to be any data. I haven't been able to find enex data in IPL streams. Perhaps the doors objects themselves play a roll in placing the temporary enex links.


Above is a quote from one of your previous posts. One sentense caught my attention
QUOTE
Perhaps the doors objects themselves play a roll in placing the temporary enex links.
.
It can be checked by deleting that particular door objects using MEd or something. Then see if the ENEX show up again. I will check it as soon as I install GTA (yeah I got it corrupted again ) suicidal.gif

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#16

Posted 19 June 2008 - 05:32 PM Edited by OrionSR, 19 June 2008 - 05:35 PM.

Well then. It sounds like your tool is much more robust than I had initially imagined. It looks like you've already considered most of the problems I was anticipating.

The scripting for locking and unlocking the doors should not be affected by your tool unless you make additional changes to the enex lines. I am aware of 2 methods used for changing the door locks. The primary method is to call the name of the enex. This method works on all enexes with the same name; so one command can lock all Burger doors and the interior.
CODE
07FB: set_interior 'GYM1' access 1  // Ganton Gym

If you change the enex strings then you should be able to prevent the scripts from changing the door properties. There is a chance the game might get confused when checking active interiors by name instead of number, but I'm not sure where to test for conflicts.

The other method is by location and radius. There are a few different versions of the codes used to make these changes.
CODE
0864: set_interior_at 2165.72 -1673.14 radius 10.0 access 1
09B4: set_object_property_at 345.5621 306.2212 radius 10.0 bitmask 16384 flag 0  

One of my tricks for keeping the Jefferson Safe House open on a new game is to move the door to the alley or in front of a door on a neighboring house. As long a the door is outside of the radius of the buy property pickup it will remain unlocked after the startup missions run.

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#17

Posted 19 June 2008 - 05:59 PM

Thanks for the info. So i'm going to upload the beta2 of my tool within 30 minutes.

Anyway you now hold an unoffical record of being the guy who replied to me the most number of times!!! happy.gif

for(i=0;i<infinity;i++)
{
cout<<"Thank you!";
}

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#18

Posted 20 June 2008 - 03:19 PM

I found something about extra burglary. May be you already knew it.

In an original save after 1st mision, some of the burglary enex have destination as FFFF. But In savefiles containing extra burglary ENEXs, some of these FFFF are replaced with those extra ones. This assignment is random as far i know. It is almost same in all savefiles. And the extra enexs are connected back to these existing enexs.
But in some cases, the extra burglary enexs are connected to already paired ones like TATOO. But the destination of TATOO is same as before, not altered.

And one more question, the number of saved extra Burglary enexs is always 10 ???
EDIT: No its not sometimes its 8,10,or even 12.

And something else:

The destination ID of the extra burglary ENEXs are found to be fixed. I checked a number of savefiles having diffrent amount of extra burglary ENEXs. But all of them have same destination number for curresponding SourceID. But all of them were children of one save.(I mean i had a save, i played someime saved to a new file, played somemore saved to another..)

Then I tried something odd. I loade a savefile into my tool. Deleted the first normal ENEX (POLICE1 in Las.ipl). Then updated it. It removed all cached temporory burglary enexs. Then I strted playing and went to LV and did some burglary (yes burglary are still working)and saved again.

Then I checked the new savefile. The burglary connections are not restored in it!!!. No extra burglary enexes are present in them.

Here is the relevent parts of my savefiles

I. Original(GTASAsf8.b)
-------------------------------
CODE


7801 0440 0401 connected to TATTO2 gen_int1.ipl
7901 0440 4C01 connected to BARBER2 gen_int5.ipl
7A01 0440 5901 connected to CHANGER gen_int5.ipl Wardrobe Int
7B01 0440 4B01 connected to BAR1 gen_int5.ipl Disco Bar
7C01 0440 4801 connected to FDPIZA gen_int5.ipl Well Stacked Pizza
7D01 0440 3601 connected to LASTRIP gen_int3.ipl Pig Pen
7E01 0640 2A01 connected to GENWRHS gen_int3.ipl Warehouse
7F01 0440 4201 connected to CSSPRT gen_int5.ipl Pro-Laps
8001 0040 FFFF
8101 0040 FFFF    


II. Another child of GTASAsf8.b(GTASAsf6.b)
-------------------------------------------------
CODE

7801 0440 0401 connected to TATTO2 gen_int1.ipl
7901 0440 4C01 connected to BARBER2 gen_int5.ipl
7A01 0440 5901 connected to CHANGER gen_int5.ipl Wardrobe Int
7B01 0440 4B01 connected to BAR1 gen_int5.ipl Disco Bar
7C01 0440 4801 connected to FDPIZA gen_int5.ipl Well Stacked Pizza
7D01 0440 3601 connected to LASTRIP gen_int3.ipl Pig Pen
7E01 0640 2A01 connected to GENWRHS gen_int3.ipl Warehouse
7F01 0440 4201 connected to CSSPRT gen_int5.ipl Pro-Laps
8001 0040 FFFF
8101 0040 FFFF    


Look both of them are same!

III.Here is another one with more burglary ENEX(GTASAsf5.b)
------------------------------------------------------------------------
CODE

7801 0440 0401 connected to TATTO2 gen_int1.ipl
7901 0440 4C01 connected to BARBER2 gen_int5.ipl
7A01 0440 5901 connected to CHANGER gen_int5.ipl Wardrobe Int
7B01 0440 4B01 connected to BAR1 gen_int5.ipl Disco Bar
7C01 0440 4801 connected to FDPIZA gen_int5.ipl Well Stacked Pizza
7D01 0440 3601 connected to LASTRIP gen_int3.ipl Pig Pen
7E01 0640 2A01 connected to GENWRHS gen_int3.ipl Warehouse
7F01 0440 4201 connected to CSSPRT gen_int5.ipl Pro-Laps
8001 0040 FFFF
8101 0040 FFFF    
8201 0614 FFFF
8301 0614 0B01 connected to VGSHS2 gen_int2.ipl Burlary Knife
8401 0610 0B01 connected to VGSHS2 gen_int2.ipl Burlary Knife


Look here also the ENEXs in common have the same Destinations.

Then I opened my tool and deleted the first normal ENEX, saved it as GTASAsf7.b.
Then I checked it to see that all temperory ENEX are removed. Strted the game. loaded this savefile and just went out of savehouse went to LV and did some burglary and saved it in LV as GTASAsf1.b

Then I opened GTASAsf1.b in hexeditor there were no extra burglary enexs. Every ENEX numbers were decremented by 1 as I deleted the first ENEX.

So those extra burglary ENEXs doesn't make any sense at first look.

But when I looked closely, most of the extra burglary ENEX is connected to a shop. Does something like this (i mean to shops like barber, tatoo..)
exist as normal burglary ENEXs????I hardly find anything


So I strongly suspect that those are if they are burglary related,

Act as secondory ENEXs, ie in normal time, they use their normal IPL defined ENEX connection and During Burglary those are disabled and these ENEXs are used.
But they cannot be treated as temperory ENEXs. because each of them has constant Destinations (see the hex values).


If they are not burglary related, then they may be used for some missions.

Well I going to check these things, but one problem. How would I know the location of these extra ENEXs.


OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#19

Posted 21 June 2008 - 07:38 AM

Okay, this is strange. I've never noticed any of the extra enex connections ending up linked with any destination other than a burglary interior. Even the flags don't look right. However, most of my observations about the extra enex links were made on beginning saves. Looking through the saves I have on hand it appears that your observations about the confusing destinations is correct. I have no explanation.

As far as I know, the coordinates for the extra enex connections are only stored in memory.

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#20

Posted 21 June 2008 - 06:46 PM Edited by ATHMystikal, 21 June 2008 - 06:53 PM.

I've been playing around with those extra ENEXs all these days. I recently got a feeling that they are not always burglary related. May be they are used for burglary as well. I did well above 40 burlary missions last 2 days and never found a burglary ENEX that takes into a shop and allows you to steal things from it. When I enter the shops during burglary, they just act like usual.

Also i started a new game. I finished 1st mission and saved it. They didn't get any extra ENEXs, and did another mission saved again, this too didn't get any.

I had a complete backup of saves for all the missions. but I forgot where it is stored sad.gif . If I get it, I could probably find; after which mission, they satart to dump into savefile. This will also help to find if they are changed during missions.

But with my existing saves, I found that they are not changing. So I think R* will be creating some non IPL ENEXs for some missions or sub-missions and stored those entries in RAM along witth other ordinary pairs for quick access. And when a savefile is created, they were also dumped and they dont care about them later. This is because. doing burglary mission with and without these extra ENEX in your save doesn't make any noticeable difference.


But in my previous post you can see that, some extra ENEXs are connected to shops. and some of these shops are connected back also. That means somewhere in the game, they got connected.
If that was used for mission, burglary or sub-mission, in which?. Did you remember any mission or sub-mission related with TATOO shop,PRO-LAPS etc..

And about the cordinates of an extra ENEX. Since their destination ID points to an existing IPL ENEX, their source information will be taken from an existing IPL ENEX
too. Because thnik of an extra ENEX to a TATOO. Then its exterior marker should be infront of some TATOO shop itself, and logically it cant be infront of house or some other thing. And all TATOO shops already have an IPL ENEX infront of it. SO extra ENEX may be taking the cordinates from one such ENEX.

I dont think R* create an ENEX infront of a house door, which takes you to TATOO shop.

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#21

Posted 21 June 2008 - 08:42 PM

After thinking a lot, the extra ENEX to BAR may be used during a dating. Because did you notice. In dating, you enter a bar through the ENEX, but you never comeout through an ENEX, instead after cutscene takes you out. This happens when entering girl friends house after dating. That means you comeout of interior to exterior without using an ENEX.
If you enter such enexs, are you actually entring interior world?. Because eventhough you are entering it, only a cutscene is played, you cant move around inside it.

Oh I found out my old savefiles. and I started to look through them to find out in which save, the extra ENEX starts to dump. But I am frustrated to see that about 90% doesn't have them. I checked if savefile after first burglary mission, 'Home Invasion'. But it has none. And I checked some more files. Some of them has some not. Aprent may have them but child may not.

But saves under the same mission name have them almost same. Also the save files with Sub-mission name(eg, barnstorming) have these ENEXs most times. But saves with main-mission names have those rarely.


And you have to see this:

7601 0040 FFFF
7701 0040 FFFF
7901 0614 0B01
7A01 0614 FFFF
7B01 0610 0B01

Look there is no 78 01 , This is an unmodified original savefile saved after passing the mission 'Free Fall' and It works well.

'Breaking the Bank at Caligulas' also got 78 01 missing. But saves before and after have it correct.


Oh these extra ENEXs are so confusing. I am leaving them to work in whatever way they want devil.gif devil.gif mercie_blink.gif

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#22

Posted 21 June 2008 - 10:11 PM Edited by OrionSR, 21 June 2008 - 10:14 PM.

I'm not sure if this will help or not, but here a sample of the extra burglary doors found in a NewGame start on PS2v1. On this save CJ would have started the game and then ran down the alley until the radar stopped blinking, then the memory was dumped. I think, or maybe he entered Jefferson before saving - I had moved the door to keep it open on my first tests with the emulator.

Data structure can be found on this post earlier in this thread.
http://www.gtaforums...st&p=1058265985

CODE
00c9ded0h: 4C 41 48 53 31 42 00 00 28 0C 05 45 7A 2B AA C4; LAHS1B..(..Ez+
00c9dee0h: 28 2C 05 45 7A 4B AA C4 20 42 D1 41 7D 8D 45 40; (,.EzK BA}E@
00c9def0h: 28 1C 05 45 13 75 AA C4 20 42 CD 41 FD FF 33 43; (..E.u BA3C
00c9df00h: 06 14 00 00 00 00 00 80 D8 C7 C9 00 4C 41 48 53; ........LAHS
00c9df10h: 31 41 00 00 37 39 06 45 90 BB A4 C4 37 59 06 45; 1A..79.E7Y.E
00c9df20h: 90 FB A4 C4 87 1C CE 41 00 00 00 00 37 29 06 45; ć.A....7).E
00c9df30h: F6 C1 A4 C4 87 1C CE 41 00 00 00 00 06 14 00 00; ć.A........
00c9df40h: 00 18 00 80 9C C7 C9 00 4C 41 48 53 31 41 00 00; ....LAHS1A..
00c9df50h: B9 EC 08 45 23 5F 9F C4 B9 0C 09 45 23 9F 9F C4; .E#_Ĺ..E#
00c9df60h: D7 56 C9 41 DB 0F 49 40 B9 FC 08 45 BD A8 9F C4; VA.I@.E
00c9df70h: 7B C7 C8 41 00 00 34 43 06 14 00 00 00 00 00 80; {A..4C.......
00c9df80h: 9C C7 C9 00 4C 41 48 53 31 42 00 00 B0 8A 06 45; .LAHS1B...E
00c9df90h: F8 55 9B C4 B0 AA 06 45 F8 95 9B C4 20 38 CB 41; Uİ.E 8A
00c9dfa0h: 00 00 00 00 B0 9A 06 45 F8 55 9B C4 20 38 CB 41; .....EU 8A
00c9dfb0h: 00 00 00 00 06 14 00 00 00 18 00 80 D8 C7 C9 00; ............
00c9dfc0h: 4C 41 48 53 31 41 00 00 C9 52 06 45 70 A8 A0 C4; LAHS1A..R.Ep
00c9dfd0h: C9 72 06 45 70 E8 A0 C4 87 BC C1 41 DB 0F 49 40; r.Ep ćA.I@
00c9dfe0h: C9 82 06 45 0A E2 A0 C4 87 BC C1 41 00 00 34 43; ɂ.E. ćA..4C
00c9dff0h: 06 14 00 00 00 00 00 80 9C C7 C9 00 4C 41 48 53; ........LAHS
00c9e000h: 53 36 00 00 E0 E3 02 45 F0 05 8F C4 E0 03 03 45; S6...E...E
00c9e010h: F0 45 8F C4 6C CF D4 41 DB 0F C9 BF E0 EB 02 45; ElA.ɿ.E
00c9e020h: F0 25 8F C4 6C CF D4 41 00 00 87 C3 06 14 00 00; %lA......
00c9e030h: 00 18 00 80 CC C4 C9 00 4C 41 48 53 31 42 00 00; ....LAHS1B..
00c9e040h: D0 8C 0C 45 78 B9 9A C4 D0 AC 0C 45 78 F9 9A C4; Ќ.ExЬ.Ex
00c9e050h: 20 78 CF 41 00 00 00 00 D0 9C 0C 45 78 B9 9A C4;  xA....М.Ex
00c9e060h: 20 78 CF 41 00 00 00 00 06 14 00 00 00 18 00 80;  xA...........
00c9e070h: D8 C7 C9 00 4C 41 48 53 31 41 00 00 07 46 0B 45; .LAHS1A...F.E
00c9e080h: 9D 07 9B C4 07 66 0B 45 9D 47 9B C4 D7 56 CD 41; ..f.EGVA
00c9e090h: 00 00 00 00 07 56 0B 45 03 FE 9A C4 7B C7 CC 41; .....V.E.{A
00c9e0a0h: 00 00 00 00 06 14 00 00 00 18 00 80 9C C7 C9 00; ............
00c9e0b0h: 4C 41 48 53 31 41 00 00 B7 0C 0A 45 D0 C0 9A C4; LAHS1A....E
00c9e0c0h: B7 2C 0A 45 D0 00 9B C4 87 5C C1 41 00 00 00 00; ,.E.ć\A....
00c9e0d0h: B7 FC 09 45 36 C7 9A C4 87 5C C1 41 00 00 00 00; .E6ǚć\A....
00c9e0e0h: 06 14 00 00 00 00 00 80 9C C7 C9 00 4C 41 48 53; ........LAHS
00c9e0f0h: 31 42 00 00 68 F1 09 45 BA 0F A0 C4 68 11 0A 45; 1B..h.E. h..E
00c9e100h: BA 2F A0 C4 20 22 C9 41 7D 8D 45 40 68 01 0A 45; / "A}E@h..E
00c9e110h: 53 59 A0 C4 20 22 C5 41 FD FF 33 43 06 14 00 00; SY "A3C....
00c9e120h: 00 00 00 80 D8 C7 C9 00 4C 41 48 53 31 42 00 00; ....LAHS1B..
00c9e130h: 18 EA 08 45 06 D2 9A C4 18 0A 09 45 06 F2 9A C4; ..E.Қ...E.
00c9e140h: 20 12 C4 41 9B 96 60 BD 18 FA 08 45 6D A8 9A C4;  .A`..Em
00c9e150h: 20 12 C0 41 00 00 00 00 06 14 00 00 00 00 00 80;  .A...........
00c9e160h: D8 C7 C9 00 4C 41 48 53 31 42 00 00 D0 8C 0C 45; .LAHS1B..Ќ.E
00c9e170h: 78 B9 9A C4 D0 AC 0C 45 78 F9 9A C4 20 78 CF 41; xЬ.Ex xA
00c9e180h: 00 00 00 00 D0 9C 0C 45 78 B9 9A C4 20 78 CF 41; ....М.Ex xA
00c9e190h: 00 00 00 00 06 14 00 00 00 18 00 80 D8 C7 C9 00; ............
00c9e1a0h: 4C 41 48 53 31 42 00 00 50 38 11 45 00 38 9C C4; LAHS1B..P8.E.8
00c9e1b0h: 50 58 11 45 00 78 9C C4 41 43 E0 41 00 00 00 00; PX.E.xACA....
00c9e1c0h: 50 48 11 45 CD B4 9C C4 41 43 E0 41 00 00 34 C3; PH.EʹACA..4
00c9e1d0h: 06 14 00 00 00 18 00 80 D8 C7 C9 00 4C 41 48 53; ........LAHS
00c9e1e0h: 53 36 00 00 54 B5 02 45 3A B1 91 C4 54 D5 02 45; S6..T.E:T.E
00c9e1f0h: 3A F1 91 C4 66 C6 D4 41 DB 0F C9 BF 87 B8 02 45; :fA.ɿ.E
00c9e200h: 3A D1 91 C4 66 C6 D4 41 00 00 87 C3 06 14 00 00; :ёfA......
00c9e210h: 00 18 00 80 CC C4 C9 00 4C 41 48 53 31 42 00 00; ....LAHS1B..
00c9e220h: 50 38 11 45 C0 26 A0 C4 50 58 11 45 C0 66 A0 C4; P8.E& PX.Ef
00c9e230h: 41 43 E0 41 00 00 00 00 50 48 11 45 8D A3 A0 C4; ACA....PH.E
00c9e240h: 41 43 E0 41 00 00 34 C3 06 14 00 00 00 00 00 80; ACA..4.......
00c9e250h: D8 C7 C9 00 4C 41 48 53 31 42 00 00 D6 DC 11 45; .LAHS1B...E
00c9e260h: 88 0E 9E C4 D6 FC 11 45 88 4E 9E C4 41 43 E0 41; ..ENACA
00c9e270h: 00 00 00 00 D6 EC 11 45 55 CB 9D C4 41 43 E0 41; .....EU˝ACA
00c9e280h: 00 00 00 00 06 14 00 00 00 00 00 80 D8 C7 C9 00; ............
00c9e290h: 4C 41 48 53 53 36 00 00 E1 A9 02 45 EE E6 93 C4; LAHSS6...E
00c9e2a0h: E1 C9 02 45 EE 26 94 C4 C7 96 D8 41 DB 0F C9 BF; .E&ǖA.ɿ
00c9e2b0h: AE AE 02 45 EE 26 94 C4 C7 96 D8 41 00 00 87 C3; .E&ǖA..
00c9e2c0h: 06 14 00 00 00 00 00 80 CC C4 C9 00 4C 41 48 53; ........LAHS
00c9e2d0h: 31 42 00 00 D6 DC 11 45 88 4A 96 C4 D6 FC 11 45; 1B...EJ.E
00c9e2e0h: 88 8A 96 C4 41 43 E0 41 00 00 00 00 D6 EC 11 45; ACA.....E
00c9e2f0h: 55 07 96 C4 41 43 E0 41 00 00 00 00 06 14 00 00; U.ACA........
00c9e300h: 00 00 00 80 D8 C7 C9 00 4C 41 48 53 31 42 00 00; ....LAHS1B..
00c9e310h: 10 DD 03 45 F8 68 9B C4 10 FD 03 45 F8 A8 9B C4; ..Eh..E
00c9e320h: 20 18 CF 41 00 00 00 00 10 ED 03 45 F8 68 9B C4;  .A......Eh
00c9e330h: 20 18 CF 41 00 00 00 00 06 14 00 00 00 18 00 80;  .A...........
00c9e340h: D8 C7 C9 00 4C 41 48 53 31 42 00 00 50 36 05 45; .LAHS1B..P6.E
00c9e350h: 48 E5 9F C4 50 56 05 45 48 25 A0 C4 20 68 CF 41; HPV.EH% hA
00c9e360h: DB 0F 49 40 50 46 05 45 48 25 A0 C4 20 68 CF 41; .[email protected]% hA
00c9e370h: 00 00 34 43 06 14 00 00 00 00 00 80 D8 C7 C9 00; ..4C........
00c9e380h: 4C 41 48 53 31 41 00 00 69 2A 06 45 F0 CA AA C4; LAHS1A..i*.E
00c9e390h: 69 4A 06 45 F0 0A AB C4 87 4C CD 41 DA 0F 49 40; iJ.E.ćLA.I@
00c9e3a0h: 69 5A 06 45 8A 04 AB C4 87 4C CD 41 FF FF 33 43; iZ.E.ćLA3C
00c9e3b0h: 06 14 00 00 00 18 00 80 9C C7 C9 00 4C 41 48 53; ........LAHS
00c9e3c0h: 31 41 00 00 99 A3 02 45 A3 A6 9F C4 99 C3 02 45; 1A...Eę.E
00c9e3d0h: A3 E6 9F C4 D7 86 D1 41 DB 0F 49 40 99 B3 02 45; ׆A.I@.E
00c9e3e0h: 3D F0 9F C4 7B F7 D0 41 00 00 34 43 06 14 00 00; ={A..4C....
00c9e3f0h: 00 00 00 80 9C C7 C9 00 4C 41 48 53 31 42 00 00; ....LAHS1B..
00c9e400h: B8 99 02 45 46 50 9A C4 B8 B9 02 45 46 70 9A C4; .EFPĸ.EFp
00c9e410h: 20 52 D0 41 9B 96 60 BD B8 A9 02 45 AD 26 9A C4;  RA`.E&
00c9e420h: 20 52 CC 41 00 00 00 00 06 14 00 00 00 00 00 80;  RA...........
00c9e430h: D8 C7 C9 00 4C 41 48 53 42 33 00 00 00 95 04 45; .LAHSB3....E
00c9e440h: A9 5D A6 C4 00 B5 04 45 A9 9D A6 C4 69 2E D5 41; ]..Ei.A
00c9e450h: 9C 96 60 3D 00 A5 04 45 76 FA A5 C4 69 2E D5 41; `=..Evi.A
00c9e460h: 00 00 00 00 06 14 00 00 00 18 00 80 34 C6 C9 00; ...........4.

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#23

Posted 22 June 2008 - 09:02 AM

Thankz I am working on it. I,ve played GTASA many times, and I never found Extra Burglary ENEX in first save [PC]. Do you know when/after which mission they are first stored into savefile.?

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#24

Posted 22 June 2008 - 09:37 AM

New enexes can appear right away, without any missions. In the chain game saves we suspect that rolling the clock back to just after midnight was contributing the the creation of burglary enexes. Perhaps CJ's location in the Jefferson Alley contributes to burglary doors rather than another type of enex.

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#25

Posted 22 June 2008 - 07:15 PM

CODE

0x00 character[7]        Name of Enex string
0x07 byte                nul terminator of string (00)
0x08 float               X1 - X in Coord
0x0C float               Y1 - Y in Coord
0x10 float               adjusted X out
0x14 float               adjusted Y out
0x18 float               Z in Coord + 1.0
0x1C byte[4]             (unknown) possibly related to unknown Rot1?? (some IPL values appear to be radian) - cannot decode
0x20 float               X out Coord
0x24 float               Y out Coord
0x28 float               Z out Coord + 1.0
0x2C float               Out Angle
0x30 word                door flags
0x32 byte                Interior number
0x33 byte                Sky
0x34 byte                Time On
0x35 byte                Time Off
0x36 byte                I2 (unknown)
0x37 byte                (unknown)
0x38 dword               destination address


This format is given by you in an older post. its correct, but I think it needs some clarification about the cordinates.

After a lot of experiments, I found that if X,Y,Z are entry cordinates of an ENEX and radX and radY are radii of the same in IPL file,then in memory

CODE

0x08 float               is  X-(radX/2) = Xmin
0x0C float               is Y+(radY/2)  = Ymax
0x10 float               is X+(radX/2)   = Xmax
0x14 float               is Y-(radY/2)   = Ymin


That is if player is within Xmax and Xmin and ymax and Ymin, the ENEX is activated and we are teleported. These cordinates are derived from the actual cordinates and radii giiven in IPL.

And a doubt. In IPL ENEX documentation, I saw the term X radius and Y radius. But how could it be possible. Radius is related to a circle. But there is no circle in a single cordinate. In X or Y cord, there is only line. So I think X-width and Y width is better term.

As we can see from above, those boudaries (Xmax,Xmin,Ymax,Ymin) forms a rectagle, not a circle. and enex marker is placed at X,Y,Z

user posted image

Xmax-Xmin=radX in IPL
Ymax-Ymin=radY in IPL

And I was observing the ENEXs in memory and did a lot with extra ENEXs. Yes most of them(above 90%) are burglary ENEXs.

To find out if they have any relation with those present in savefile, I took one savefile, deleted the extra ENEXs and updated it using my tool. Them I loaded it in game.
And I scanned the memmory. Yes those extra are still present. So they are not read from savefile ENEXs. To test it, I loaded a savefile with extra ENEXs and did the samething. Then did some burglary and saved it agin.Then I opened it in Hex editor. But the extra ENEXs are not altered. Same happened with the other save in which no extra ENEXs were present. No extra ENEXs are written when they are resaved.

And about the cordinates of the extra ENEXs. I searched the memmory and decoded some of them. They are given below.

CODE


Cordinates of extra enexs:


NAME Xmin  Ymax  Xmax  Ymin  Z  DESCRIPTION
---- --------- ---------- ---------- ----------- --------- -----------------------------
LAHS1A 2513.0735, -1690.3591, 2515.0735, -1692.2591, 14.098299 Burglary house near CJs house
LAHS1A 1694.3628, -2124.8242, 1696.3638, -2126.8242, 13.812893 Burglary house near Verdent Bluffs savehouse
LAHS1A 1666.5203, -2106.0613, 1668.5203, -2108.0613, 14.097178 Burglary house near Verdent Bluffs savehouse
LAHS1A 1672.5659, -2121.3337, 1674.5659, -2123.3337, 14.148830 Burglary house near Verdent Bluffs savehouse


If u cant see it correctly, copy psate it to notepad and turn off wordwrap.

Then I tested them by doing burglary mission. They are working.

To find if they acquire their cordinates from 'door object', I started MEd and navigated to these area and found these houses. But for my surprice, none of them had a door object. They dont have a door object like safehouse or other buildings. The door is just a texture. So the cordinates are not read from door object.

For testing, I deleted the building using MEd. but LOD was left behind. Then I run gta and started burglary. But this time, there was no marker on that building.So it is related to the building model/collision.(doesnt mean cords are read from them)

So may be they are hard coded in the exe. or scripted in the burglar mission script.

Then I tried to find out when they are written to memmory. I found it. they are written when we load a savefile for the first time. If we load another savefile, none of them (even ordinary IPL enex) are re-written.I tested it with savefiles with/without extra ENEX, modeed saves with more than 376 ENEX, less than 376.. Loaded them in diffrent order. but still they are written only once.But I had to test it again.




OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#26

Posted 22 June 2008 - 09:08 PM

Yeah, okay. It looks like I was wrong about the Entrance coordinates. See if this matches observations.

Assume X rad and Y rad to be X width and Y width:
CODE
0x00 character[7]        Name of Enex string
0x07 byte                nul terminator of string (00)
0x08 float               X1a - X width/2
0x0C float               Y1a - X width/2
0x10 float               X2b + X width/2
0x14 float               Y2b + X width/2
0x18 float               Z in Coord + 1.0
0x1C byte[4]             (unknown) possibly related to unknown Rot1??  - cannot decode
0x20 float               X out Coord
0x24 float               Y out Coord
0x28 float               Z out Coord + 1.0
0x2C float               Out Angle
0x30 word                door flags
0x32 byte                Interior number
0x33 byte                Sky
0x34 byte                Time On
0x35 byte                Time Off
0x36 byte                I2 (unknown)
0x37 byte                (unknown)
0x38 dword               destination address

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#27

Posted 22 June 2008 - 09:28 PM Edited by ATHMystikal, 22 June 2008 - 09:31 PM.

I think you made a ssmall mistake. There is no X1a or X2b both are same (the valuse of X in IPL)
and one more. its not -,-,+,+ but -,+,+,-
This
CODE

0x08 float X1a - X width/2
0x0C float Y1a - X width/2
0x10 float X2b + X width/2
0x14 float Y2b + X width/2


becomes this
CODE

0x08 float X - X width/2
0x0C float Y + Y width/2
0x10 float X + X width/2
0x14 float Y - Y width/2

where
X,Y,Z are cordinates of that ENTRY in IPL (X1,Y1.Z1 in IPL nomenclature)
X width and Y width are X radius and Y radius in IPL

ie always
[0x10] - [0x08] = Xwidth
[0x0C] - [0x14] = Ywidth


So getting everything togethor
CODE

0x00 character[7]        Name of Enex string
0x07 byte                nul terminator of string (00)
0x08 float X - X width/2
0x0C float Y + Y width/2
0x10 float X + X width/2
0x14 float Y - Y width/2
0x18 float               Z in Coord + 1.0
0x1C byte[4]             (unknown) possibly related to unknown Rot1??  - cannot decode
0x20 float               X out Coord
0x24 float               Y out Coord
0x28 float               Z out Coord + 1.0
0x2C float               Out Angle
0x30 word                door flags
0x32 byte                Interior number
0x33 byte                Sky
0x34 byte                Time On
0x35 byte                Time Off
0x36 byte                I2 (unknown)
0x37 byte                (unknown)
0x38 dword               destination address

I am new in this area. So admit my suggestion only if you find it correct.
I request you to verify my observations. I dont have much experience in these things. You are my teacher in this field.

thanks for looking at that post. smile.gif

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#28

Posted 23 June 2008 - 08:16 AM

Um... yeah. That looks right. But still, we shouldn't be defining memory based on an IPL definition. Perhaps someone has already documented this area of memory and we can borrow from that. The X width and Y width are defined in IPL and are not present in memory. Perhaps something like:

CODE
0x00 character[7]        Name of Enex string
0x07 byte                nul terminator of string (00)
0x08 float               XinMin
0x0C float               YinMax
0x10 float               XinMax
0x14 float               YinMin
0x18 float               Z in Coord + 1.0
0x1C byte[4]             (unknown) possibly related to unknown Rot1??  - cannot decode
0x20 float               X out Coord
0x24 float               Y out Coord
0x28 float               Z out Coord + 1.0
0x2C float               Out Angle
0x30 word                door flags
0x32 byte                Interior number
0x33 byte                Sky
0x34 byte                Time On
0x35 byte                Time Off
0x36 byte                I2 (unknown)
0x37 byte                (unknown)
0x38 dword               destination address

Notes:
  • XinMax in memory = IPL X1 + X width/2
  • X width is defined as X radius in current documentation.

ATHMystikal
  • ATHMystikal

    I want to know every damn thing in this world

  • Members
  • Joined: 10 Mar 2007

#29

Posted 23 June 2008 - 01:37 PM Edited by ATHMystikal, 23 June 2008 - 01:42 PM.

Yeah thats correct, I think.

And did you get anything more about how those extra ENEXs get their cordinates??. I rechecked and found that many buglary houses haven't got any door object. So cordinates are not taken from it.

But unlike normal ENEXs, they need some building model to work. If you delete the building model, yellow markers will not appear. Actually they are not created in memoty either if building is missing

OrionSR
  • OrionSR

    Chain Game Development Team

  • Feroci
  • Joined: 23 May 2007
  • None
  • Helpfulness Award [GTA & Modding]

#30

Posted 23 June 2008 - 04:01 PM

I've got no idea how the extra enex connections get their coordinates. Although I am a bit curious, I'm not sure this information is particularly useful.

Here's another question that's been bugging me: How does the game know that the extra links in the save are not associated with enex lines I've added after the game was started?





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users