All lines of code in any .tp* files (or files masquerading as .tp* files) factor into the lines of code countThat will make the header longer than the mod. Short enough for you...

Posted 30 May 2009 - 07:40 PM
All lines of code in any .tp* files (or files masquerading as .tp* files) factor into the lines of code countThat will make the header longer than the mod. Short enough for you...
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
Posted 31 May 2009 - 06:02 AM
Did you know that there is GAME_IS in weidu? You can use it to specify which game platform the file should be modified for.// ========================== YOU MUST SET THIS VARIABLE. =======================
// 1 = PST
// 2 = BG2
// 3 = BG1 or IWD
// These macros will NOT work with IWD2, the area file in that game is substantially different.
SET "Q_Game" = 1
PATCH_IF (GAME_IS ~pst~) BEGIN SET Q_GAME = 1 END PATCH_IF (GAME_IS ~bg2 tob tutu tutu_totsc bgt~) BEGIN SET Q_GAME = 2 END PATCH_IF (GAME_IS ~bg1 totsc iwd how totlm~) BEGIN SET Q_GAME = 3 ENDI'd check with the bigg to make sure that this would get all instances of the game as he'd made changes to GAME_IS and ENGINE_IS since 208...
You can see the two highlighted offsets have the same location in the file if you look at their quantity you'll see thatActors offset = 11c h
Info points, trigger points and exits offset = 55c h
Spawn points offset = ab8 h
Entrances offset = ab8 h
Containers offset = b20 h
Items offset = 1360 h
Vertices offset = 17d8 h
Ambients offset = 1568 h
Variables offset = 1710 h
Explored bitmap offset = 4cc0 h
Doors offset = 1710 h
Animations offset = 4cc0 h
Tiled objects offset = 17d8 h
Songs offset = 4cc0 h
Rest spawn creatures offset = 4d50 h
Automap note offset = 0 h <-- this isn't used in BG or BG TOTSC so NI puts in an empty value
If for some reason I wanted to add a spawn point using your current macro the entrances offset would not get updated because it is equal to the spawn point offset. While the entrance data gets shifted with the insert bytes the entrance offset does not get updated. You can also see other sections that share the same offset value. If any one of them that was empty gets data added those equal section offsets will not be updated and will point to the wrong information... So in your process if you change those that are equal as well as greater all those other section offsets will be updated but the current offset having bytes added will try to update as well. That too will cause problems with the file....# spawn points = 0
# entrances = 1
My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm
Posted 31 May 2009 - 08:55 PM
Edited by Qwinn, 31 May 2009 - 08:59 PM.
Posted 01 June 2009 - 11:53 AM
Posted 01 June 2009 - 01:28 PM
Don't forget to update the download link and the post text... Let us know when you've got it fixed and tested. <-- EDIT: You beat me to it while I was putting together this post...Yes, it does, and good catch. I think we can take your suggestion about making it >= rather than just >, and then just do an additional check to make sure S1 does not equal S2. I think that'll cover your "But you then get a new problem: How to prevent the current offset being added to from being updated as well" concern, right? I'll have to think on it some more before deciding if that'll cover it myself.
EDIT: Yeah, pretty sure that check should solve that problem.
Qwinn
PATCH_IF (~%S2%~ STRING_EQUAL_CASE ~Trigg~ ) OR (~%S2%~ STRING_EQUAL_CASE ~Conta~ ) OR (~%S2%~ STRING_EQUAL_CASE ~Doors~) AND (%Q_New_Vertx% > 0) BEGIN SET "QV_OffFVI_Trigg" = 0x2c SET "QV_OffFVI_Conta" = 0x50 SET "QV_OffFVI_DoorO" = 0x2c SET "QV_OffFVI_DoorC" = 0x34 SET "QV_OffFVI_DoorOI" = 0x50 SET "QV_OffFVI_DoorCI" = 0x48 //move trigger vertex indexes forward by Q_New_Vertex FOR ("i2" = 1; "i2" <= "Q_Num_Trigg"; "i2" += 1) BEGIN READ_LONG ("Q_Off_Trigg" + ("Q_Siz_Trigg" * ("i2" - 1)) + "QV_OffFVI_Trigg") "QV_EachFVI" WRITE_LONG ("Q_Off_Trigg" + ("Q_Siz_Trigg" * ("i2" - 1)) + "QV_OffFVI_Trigg") "QV_EachFVI" + %Q_New_Vertx% END //move container vertex indexes forward by Q_New_Vertex FOR ("i2" = 1; "i2" <= "Q_Num_Conta"; "i2" += 1) BEGIN READ_LONG ("Q_Off_Conta" + ("Q_Siz_Conta" * ("i2" - 1)) + "QV_OffFVI_Conta") "QV_EachFVI" WRITE_LONG ("Q_Off_Conta" + ("Q_Siz_Conta" * ("i2" - 1)) + "QV_OffFVI_Conta") "QV_EachFVI" + %Q_New_Vertx% END //move door vertex indexes forward by Q_New_Vertex FOR ("i2" = 1; "i2" <= "Q_Num_Doors"; "i2" += 1) BEGIN READ_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorO") "QV_EachFVI" WRITE_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorO") "QV_EachFVI" + %Q_New_Vertx% READ_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorC") "QV_EachFVI" WRITE_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorC") "QV_EachFVI" + %Q_New_Vertx% READ_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorOI") "QV_EachFVI" WRITE_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorOI") "QV_EachFVI" + %Q_New_Vertx% READ_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorOC") "QV_EachFVI" WRITE_LONG ("Q_Off_Doors" + ("Q_Siz_Doors" * ("i2" - 1)) + "QV_OffFVI_DoorOC") "QV_EachFVI" + %Q_New_Vertx% END END
Edited by Sasha Al'Therin, 01 June 2009 - 01:29 PM.
My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm
Posted 01 June 2009 - 04:32 PM
Okay... Did some playing around with that. It's probably longer code than you want but I think it'll do the job. I didn't use Qwinn's macro cause I wasn't sure how to use it to delete so I created my own FUNCTION to do the job, but I slightly modified your code so I could understand what was happening.Maybe one of you can use the macro(s) as a 'proof of concept' on my code here.
INCLUDE ~somemode\somedir\DELETE_AMBIENT_ENTRY.tph~ COPY_EXISTING_REGEXP GLOB ~^\([^xX].*\|[xX][^rR].*\|[xX][rR][^2].*\|[xX][rR]2[^46].*\)\.are$~ ~override~ PATCH_IF SOURCE_SIZE > 0x11b BEGIN //If a valid area READ_SHORT 0x82 mc //Ambient count READ_LONG 0x84 mf //Ambient offset FOR (index=0;index<%mc%;index+=1) BEGIN SET mb = (0xd4 * %index%) //index into ambient entries READ_SHORT (mf + mb + 0x80) sc //Sound count SET ss = 0x30 //start location SET sz = 0x8 //size per entry FOR (index2=0;index2<%sc%;index2+=1) BEGIN SET si = (%index2% * %sz%) //index into sounds entries in current ambient entry READ_ASCII (mf + mb + %ss% + %si%) sf //blank out non-existant sound file references <-- this is in case other sound file references do exist PATCH_IF (NOT FILE_EXISTS_IN_GAME ~%sf%.wav~) BEGIN WRITE_ASCII (mf + mb + %ss% + %si%) ~~ (8) END END END LAUNCH_PATCH_FUNCTION ~Delete_Ambient_Entry~ END BUT_ONLY_IF_IT_CHANGES
//////////////////////////////// //Contents of Delete_Ambient_Entry DEFINE_PATCH_FUNCTION ~Delete_Ambient_Entry~ BEGIN SET off_of_amb_c = 0x82 //set offset value to read ambient count SET off_of_amb_o = 0x84 //set offset value to read ambient offset READ_SHORT %off_of_amb_c% amb_c //Ambient count READ_LONG %off_of_amb_o% amb_o //Ambient offset SET amb_s = 0xd4 //set ambient entry size FOR (index=0;index<%amb_c%;index+=1) BEGIN SET amb_e = (0xd4 * %index%) //set index into ambient entries //must know if ALL entries are not in game not just the current one. SET ss0 = 0x30 //sound 1 SET ss1 = 0x38 //sound 2 SET ss2 = 0x40 //sound 3 SET ss3 = 0x48 //sound 4 SET ss4 = 0x50 //sound 5 SET ss5 = 0x58 //sound 6 SET ss6 = 0x60 //sound 7 SET ss7 = 0x68 //sound 8 SET ss8 = 0x70 //sound 9 SET ss9 = 0x78 //sound 10 READ_ASCII (%amb_o% + %amb_e% + %ss0%) sound0 READ_ASCII (%amb_o% + %amb_e% + %ss1%) sound1 READ_ASCII (%amb_o% + %amb_e% + %ss2%) sound2 READ_ASCII (%amb_o% + %amb_e% + %ss3%) sound3 READ_ASCII (%amb_o% + %amb_e% + %ss4%) sound4 READ_ASCII (%amb_o% + %amb_e% + %ss5%) sound5 READ_ASCII (%amb_o% + %amb_e% + %ss6%) sound6 READ_ASCII (%amb_o% + %amb_e% + %ss7%) sound7 READ_ASCII (%amb_o% + %amb_e% + %ss8%) sound8 READ_ASCII (%amb_o% + %amb_e% + %ss9%) sound9 PATCH_IF (NOT FILE_EXISTS_IN_GAME ~sound0~) AND (NOT FILE_EXISTS_IN_GAME ~sound1~) AND (NOT FILE_EXISTS_IN_GAME ~sound2~) AND (NOT FILE_EXISTS_IN_GAME ~sound3~) AND (NOT FILE_EXISTS_IN_GAME ~sound4~) AND (NOT FILE_EXISTS_IN_GAME ~sound5~) AND (NOT FILE_EXISTS_IN_GAME ~sound6~) AND (NOT FILE_EXISTS_IN_GAME ~sound7~) AND (NOT FILE_EXISTS_IN_GAME ~sound8~) AND (NOT FILE_EXISTS_IN_GAME ~sound9~) BEGIN DELETE_BYTES (%amb_o% + %amb_e%) %amb_s% WRITE_SHORT %off_of_amb_c% (%amb_c% - 1) SET del_bytes = 0xd4 //update other offsets //check other offsets and update as needed //set these for use with later P_F_E SET loc_actor = 0x54 SET loc_spawn = 0x60 SET loc_entrance = 0x68 SET loc_container = 0x70 SET loc_item = 0x78 SET loc_vertex = 0x7c SET loc_ambient = 0x84 SET loc_variable = 0x88 SET loc_door = 0xa8 SET loc_explored = 0xa0 SET loc_anim = 0xb0 SET loc_tiled = 0xb8 SET loc_song = 0xbc SET loc_rest = 0xc0 PATCH_IF !(GAME_IS ~pst~) BEGIN SET loc_amapBG2 = 0xc4 SET loc_pro_traps = 0xcc END PATCH_IF (GAME_IS ~pst~) BEGIN SET loc_amapPST = 0xc8 END //Get the offset entries could use the variables set above instead of the hard set entries, but don't matter READ_LONG 0x54 actor_off READ_LONG 0x60 spawn_off READ_LONG 0x68 entrance_off READ_LONG 0x70 container_off READ_LONG 0x78 item_off READ_LONG 0x7c vertex_off READ_LONG 0x84 ambient_off READ_LONG 0x88 variable_off READ_LONG 0xa8 door_off READ_LONG 0xa0 explored_off READ_LONG 0xb0 anim_off READ_LONG 0xb8 tiled_off READ_LONG 0xbc song_off READ_LONG 0xc0 rest_off PATCH_IF !(GAME_IS ~pst~) BEGIN READ_LONG 0xc4 amapBG2_off READ_LONG 0xcc pro_traps_off END PATCH_IF (GAME_IS ~pst~) BEGIN READ_LONG 0xc8 amapPST_off END //do a PFE for each section and update if neeeded //ambients don't mess with vertex points so I don't need to update those indexes PATCH_FOR_EACH ~string~ IN ~actor~ ~spawn~ ~entrance~ ~container~ ~item~ ~vertex~ ~ambient~ ~variable~ ~door~ ~explored~ ~anim~ ~tiled~ ~song~ ~rest~ ~amapBG2~ ~pro_traps~ ~amapPST~ BEGIN SET offset = $loc(%string%) PATCH_IF ($%string%(off) >= %amb_o%) AND (NOT ~%string%~ STRING_EQUAL_CASE ~ambient~) BEGIN WRITE_LONG %offset% (%actor_off% - %del_bytes%) END PATCH_IF !(GAME_IS ~pst~) AND ( (~%string%~ STRING_EQUAL_CASE ~amapBG2~) (~%string%~ STRING_EQUAL_CASE ~pro_traps~) ) BEGIN PATCH_IF ($%string%(off) >= %amb_o%) BEGIN WRITE_LONG %offset% (%actor_off% - %del_bytes%) END END PATCH_IF (GAME_IS ~pst~) AND (~%string%~ STRING_EQUAL_CASE ~amapPST~) BEGIN PATCH_IF ($%string%(off) >= %amb_o%) BEGIN WRITE_LONG %offset% (%actor_off% - %del_bytes%) END END END //end the FUNCTION definition
My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm
Posted 01 June 2009 - 05:02 PM
My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm
Posted 01 June 2009 - 05:05 PM
What happens when...
I add two triggers to a file that has containers, doors and other triggers. My new vertex points are added to the front of the vertex section and I've properly figured out what my vertex index numbers are for the two new triggers.
Edited by Qwinn, 01 June 2009 - 05:06 PM.
Posted 01 June 2009 - 05:09 PM
COPY_EXISTING ~AR1404.ARE~ ~override~ LAUNCH_PATCH_MACRO ~Q_ARE_InitVars~ LAUNCH_PATCH_MACRO ~Q_AREVertex_InitVars~ SET "QV_Type" = 1 // Trigger SET "QV_Offset" = "Q_Off_Trigg" + ("Q_Siz_Trigg" * 4) SET "QV_VCount" = 19 LAUNCH_PATCH_MACRO ~Q_AREVertex_Process~ WRITE_SHORT ("QV_NewVertexOffset" + 0) 467 WRITE_SHORT ("QV_NewVertexOffset" + 2) 688 WRITE_SHORT ("QV_NewVertexOffset" + 4) 778 WRITE_SHORT ("QV_NewVertexOffset" + 6) 604 WRITE_SHORT ("QV_NewVertexOffset" + 8) 970 WRITE_SHORT ("QV_NewVertexOffset" + 10) 929 WRITE_SHORT ("QV_NewVertexOffset" + 12) 943 WRITE_SHORT ("QV_NewVertexOffset" + 14) 929 WRITE_SHORT ("QV_NewVertexOffset" + 16) 911 WRITE_SHORT ("QV_NewVertexOffset" + 18) 959 WRITE_SHORT ("QV_NewVertexOffset" + 20) 916 WRITE_SHORT ("QV_NewVertexOffset" + 22) 981 WRITE_SHORT ("QV_NewVertexOffset" + 24) 934 WRITE_SHORT ("QV_NewVertexOffset" + 26) 983 WRITE_SHORT ("QV_NewVertexOffset" + 28) 938 WRITE_SHORT ("QV_NewVertexOffset" + 30) 974 WRITE_SHORT ("QV_NewVertexOffset" + 32) 928 WRITE_SHORT ("QV_NewVertexOffset" + 34) 974 WRITE_SHORT ("QV_NewVertexOffset" + 36) 938 WRITE_SHORT ("QV_NewVertexOffset" + 38) 957 WRITE_SHORT ("QV_NewVertexOffset" + 40) 954 WRITE_SHORT ("QV_NewVertexOffset" + 42) 956 WRITE_SHORT ("QV_NewVertexOffset" + 44) 950 WRITE_SHORT ("QV_NewVertexOffset" + 46) 946 WRITE_SHORT ("QV_NewVertexOffset" + 48) 940 WRITE_SHORT ("QV_NewVertexOffset" + 50) 946 WRITE_SHORT ("QV_NewVertexOffset" + 52) 943 WRITE_SHORT ("QV_NewVertexOffset" + 54) 929 WRITE_SHORT ("QV_NewVertexOffset" + 56) 970 WRITE_SHORT ("QV_NewVertexOffset" + 58) 929 WRITE_SHORT ("QV_NewVertexOffset" + 60) 1102 WRITE_SHORT ("QV_NewVertexOffset" + 62) 1153 WRITE_SHORT ("QV_NewVertexOffset" + 64) 810 WRITE_SHORT ("QV_NewVertexOffset" + 66) 1251 WRITE_SHORT ("QV_NewVertexOffset" + 68) 705 WRITE_SHORT ("QV_NewVertexOffset" + 70) 1206 WRITE_SHORT ("QV_NewVertexOffset" + 72) 739 WRITE_SHORT ("QV_NewVertexOffset" + 74) 1143 BUT_ONLY_IF_IT_CHANGES
Posted 01 June 2009 - 05:22 PM
Your example in the first post adds 10 vertex coordinates. According to the process macro, the offset location is updated by 10 vertex worth of space on those that are > (will be >=) the offset of the vertex offset. Then new bytes are inserted at the vertex offset. It is then at that location that the vertex points will get written.
Edited by Qwinn, 01 June 2009 - 05:24 PM.
Posted 01 June 2009 - 05:32 PM
Every structure that has vertex data contains an index into the vertex list for that structure's vertices. So you have to walk through them all (accounting for where in the list you have to add your own vertices) to make sure the index and counts are all correct. Containers doubly so because they also have the item list.
"Tough" as in it's a bitchlot of work to do, not that in it requires any particular skill. And good luck trying to come up with something that does the task and has any semblance of elegance to it.
It's true when adding items into existing containers (which is better be handled by script), or morphing a square into a hexagon, but when adding new polygons? I'm not sure why to inject into the middle of the existing count then, I just add my polygon as the 'last', so for it vertex_index = vertex_offsetnum.
But the list is used for triggers, containers, and doors (in that order, I believe).
It's possible it works to, say, add a trigger but stick your coordinates at the end of the list (past those used for all the containers and doors in the area), but I've never tested it. (It would probably look screwy in NI if you tried it, though; I'm pretty sure we just add the counts up and disregard index entirely when building the associated vertices.)
A macro that worked like that, however, should most definitely get you killed.
My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm
Posted 01 June 2009 - 05:40 PM
WRITE_LONG "Q_NewOffset_Trigg" + ("Q_Siz_Trigg" * 0) + 0x2c "Q_Num_Vertx" - 10 // First Vertex IndexI forgot that the list of writes comes after the macro and that at the end of the macro you re-initialize the variables thus updating Q_Num_Vertx and the others.
My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm
Posted 01 June 2009 - 06:19 PM
I saw the vertex process macro and after looking at it carefully along with some uses of it in the candlestick.tph I realized it was for editing existing triggers, but not for making sure that new vertex points added didn't mess with current vertex indexes for pre-existing triggers, doors and containers.
Edited by Qwinn, 01 June 2009 - 06:23 PM.
Posted 01 June 2009 - 08:38 PM
I used the (relatively short if not 'elegant') code on the first page to add successfully a 6-vertex container. Doesn't look wacky in DLTCEP/NI or in-game (though it probably could be drawn more smoothly, with more vertices). Unless I'm misunderstanding and you're talking about something else, or there's something I totally overlooked...A macro that worked like that, however, should most definitely get you killed.Every structure that has vertex data contains an index into the vertex list for that structure's vertices. So you have to walk through them all (accounting for where in the list you have to add your own vertices) to make sure the index and counts are all correct. Containers doubly so because they also have the item list.
"Tough" as in it's a bitchlot of work to do, not that in it requires any particular skill. And good luck trying to come up with something that does the task and has any semblance of elegance to it.
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
Posted 01 June 2009 - 08:44 PM
If we can come up with a standard that is better (either shorter, more extensible or more efficient) than that code, I'd be happy to switch (even though I have working code AFAICT).
Posted 01 June 2009 - 09:07 PM
I don't know, to be honest. I haven't used your macro but I assume it works since you use it in published mods, though the SHORT/LONG confusion definitely needed to be resolved - I assume you did that?Um.If we can come up with a standard that is better (either shorter, more extensible or more efficient) than that code, I'd be happy to switch (even though I have working code AFAICT).
Has mine been ruled out already?
Qwinn
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
Posted 01 June 2009 - 09:12 PM
I don't know, to be honest. I haven't used your macro but I assume it works since you use it in published mods, though the SHORT/LONG confusion definitely needed to be resolved - I assume you did that?
Edited by Qwinn, 01 June 2009 - 09:28 PM.
Posted 01 June 2009 - 09:22 PM
Posted 01 June 2009 - 10:13 PM
I suspected that, therefore,My macro is designed to allow you to add any type of section an area can handle
And I suspect that's fairly easy, and similar to the code you have above to change existing vertices, and I could probably figure it out by RTFM, but... I have existing code that works. Unlike some folks though, I'm not religious about optimising existing code, so I'll give your macro a try if I can don't have to comb through it all it figure out the parameters to pass to it (I'm only a half-orc, remember). Ultimately, we want to incorporate this (or whatever standard we decide on) into WeiDU so it's dead easy for others to do, like with the existing macros (such as ADD_CRE_EFFECT etc.).So the question is: what code is necessary to do the same thing with your macro (i.e., add a new 6-vertex container to an area)?
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
Posted 01 June 2009 - 10:27 PM
Edited by Qwinn, 01 June 2009 - 10:29 PM.