Author Topic: AR1010 restoration  (Read 23682 times)

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 hard stuff
« Reply #25 on: January 29, 2006, 12:14:43 AM »
Ah, OK, I see what you're saying now.  Yeah, I think the transition from 1010 to 1008 would be good.
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 hard stuff
« Reply #26 on: January 29, 2006, 12:18:05 AM »
I don't know if I'll cover AR1010 tonight. That should be the last thing needed to completely restore the area (along with the BMPs and Echon's WED).

Updated AR1009 patch -- no longer assumes anything was deleted; properly handles areas with no actors; corrected deletion logic
EDIT: handles ARE with multiple Dezkiels
EDIT: don't bother to even delete Dezkiel -- mark him not visible
EDIT: unified patch
Code: [Select]
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Ice Island Second Level Restoration~

// ### need to copy WED, HT.BMP, LM.BMP, and SR.BMP
// AR1010.TIS and AR1010.MOS already included with TotSC

COPY_EXISTING AR1008.ARE OVERRIDE
              AR1009.ARE OVERRIDE
  PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN
      // Remove Dezkiel from AR1009 (he's now in AR1010)
      READ_LONG 0x54 actOff
      FOR (READ_SHORT 0x58 numAct; numAct > 0x0; numAct -= 0x1) BEGIN
        READ_ASCII actOff + 0x80 char
        PATCH_IF !("%char%" STRING_COMPARE_CASE "DEZKIE") BEGIN
          WRITE_LONG actOff + 0x28 0x0 // Disable Dezkiel in AR1009
        END
        actOff += 0x110
      END
    END
    // Make all transitions to autosave; enable travel to AR1010
    READ_LONG 0x5c trigOff
    FOR (READ_SHORT 0x5a numTrig; numTrig > 0x0; numTrig -= 0x1) BEGIN
      READ_SHORT trigOff + 0x20 type
      PATCH_IF (type == 0x2) BEGIN
        READ_ASCII trigOff + 0x38 destAre
        PATCH_IF (!("%destAre%" STRING_COMPARE_CASE "AR1008") ||
                  !("%destAre%" STRING_COMPARE_CASE "AR1009")) BEGIN
          READ_BYTE trigOff + 0x60 flag
          WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag
        END
      END
      PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN
        READ_ASCII trigOff name
        PATCH_IF !("%name%" STRING_COMPARE_CASE "DOOR1010") BEGIN
          WRITE_ASCII trigOff + 0x38 AR1010 #8 // Set destination area to AR1010
        END
      END
      trigOff += 0xc4
    END
    // Update number of entrances
    READ_LONG 0x6c numEntr
    WRITE_LONG 0x6c numEntr + 0x1
    // Add exit points to AR1008 and AR1009
    READ_LONG 0x68 entrOff
    entrOff += numEntr * 0x68 // Added as last entrance in file
    INSERT_BYTES entrOff 0x68
    WRITE_ASCII entrOff EXIT1010   // Entrance name
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1008") BEGIN
      WRITE_SHORT entrOff + 0x20 842 // Location X
      WRITE_SHORT entrOff + 0x22 307 // Location Y
      WRITE_SHORT entrOff + 0x24 15  // Facing direction
    END ELSE BEGIN // AR1009 patch
      WRITE_SHORT entrOff + 0x20 697 // Location X
      WRITE_SHORT entrOff + 0x22 259 // Location Y
    END
    READ_LONG 0x54 actOff
    PATCH_IF (actOff > entrOff) BEGIN
      WRITE_LONG 0x54 actOff + 0x68
    END
    READ_LONG 0x5c trigOff
    PATCH_IF (trigOff > entrOff) BEGIN
      WRITE_LONG 0x5c trigOff + 0x68
    END
    READ_LONG 0x60 sptOff
    PATCH_IF (sptOff > entrOff) BEGIN
      WRITE_LONG 0x60 sptOff + 0x68
    END
    READ_LONG 0x68 entrOff
    PATCH_IF (entrOff > entrOff) BEGIN
      WRITE_LONG 0x68 entrOff + 0x68
    END
    READ_LONG 0x70 contOff
    PATCH_IF !(contOff < entrOff) BEGIN
      WRITE_LONG 0x70 contOff + 0x68
    END
    READ_LONG 0x78 itmOff
    PATCH_IF !(itmOff < entrOff) BEGIN
      WRITE_LONG 0x78 itmOff + 0x68
    END
    READ_LONG 0x7c vertOff
    PATCH_IF !(vertOff < entrOff) BEGIN
      WRITE_LONG 0x7c vertOff + 0x68
    END
    READ_LONG 0x84 ambOff
    PATCH_IF !(ambOff < entrOff) BEGIN
      WRITE_LONG 0x84 ambOff + 0x68
    END
    READ_LONG 0x88 varOff
    PATCH_IF !(varOff < entrOff) BEGIN
      WRITE_LONG 0x88 varOff + 0x68
    END
    READ_LONG 0xa0 explOff
    PATCH_IF !(explOff < entrOff) BEGIN
      WRITE_LONG 0xa0 explOff + 0x68
    END
    READ_LONG 0xa8 doorOff
    PATCH_IF !(doorOff < entrOff) BEGIN
      WRITE_LONG 0xa8 doorOff + 0x68
    END
    READ_LONG 0xb0 animOff
    PATCH_IF !(animOff < entrOff) BEGIN
      WRITE_LONG 0xb0 animOff + 0x68
    END
    READ_LONG 0xb8 tobjOff
    PATCH_IF !(tobjOff < entrOff) BEGIN
      WRITE_LONG 0xb8 tobjOff + 0x68
    END
    READ_LONG 0xbc musOff
    PATCH_IF !(musOff < entrOff) BEGIN
      WRITE_LONG 0xbc musOff + 0x68
    END
    READ_LONG 0xc0 rspnOff
    PATCH_IF !(rspnOff < entrOff) BEGIN
      WRITE_LONG 0xc0 rspnOff + 0x68
    END
    READ_LONG 0xc4 mapnOff
    READ_LONG 0xc8 numMapn
    PATCH_IF (!(mapnOff < entrOff) && numMapn) BEGIN
      WRITE_LONG 0xc4 mapnOff + 0x68
    END
  END
BUT_ONLY_IF_IT_CHANGES
« Last Edit: January 29, 2006, 12:43:07 AM by devSin »

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 hard stuff
« Reply #27 on: January 29, 2006, 12:20:37 AM »
Nifty.  :)
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 hard stuff
« Reply #28 on: January 29, 2006, 12:27:32 AM »
I'm actually not going to bother to delete Dezkiel (just going to mark him not visible so the cre isn't loaded). I imagine I'll eventually roll the patch into the entrance update so AR1008 and AR1009 are updated in the same patch.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 hard stuff
« Reply #29 on: January 29, 2006, 01:53:14 AM »
AR1010: Restored.

The patch installs correctly over itself (obviously, you wouldn't want to do this, but the patch does not fail or corrupt the file if it's not in its default state, so we should be safe to patch AR1008, AR1009, and AR1010 that have been modified in any fashion by any mod). We may get an in-game crash if somebody completely rewrote all the entrances and triggers, but I doubt even that would break it.

The patch installs correctly over Fields of the Dead (after decompressing all 10 billion files). Nobody would want to do this, but the changes actually look like it could just get dumped on top of FotD. The autosave flag isn't set for FotD transition to AR1010 from AR1009, but I don't want to special case an AR1010 check in the flags update code (unless you want it). The transition from 1008 to 1009, 1010 to 1008, and 1010 to 1009 will be marked party-required, as expected. We preserve Echon's exit point from AR1010 to AR1009, and correctly add a new transition to AR1008 from AR1010. All of his other changes are untouched, and do not appear to conflict with anything we add.

I'm going to wiki the code, but you should choose a component title, move it to where you want in the Tp2, and you'll need to add the code to copy the WED file and the BMPs to the override folder (remove my ### todo comments when you edit).

The goods
Code: [Select]
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// ### icelus : choose component title and move it to the order you'd like in the Tp2
BEGIN ~poT-terceS tnenopmoC~

// ### icelus : need to copy WED, HT.BMP, LM.BMP, and SR.BMP

// AR1010.TIS and AR1010.MOS already included with TotSC
COPY_EXISTING AR1008.ARE OVERRIDE
              AR1009.ARE OVERRIDE
  PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN
      // Remove Dezkiel from AR1009 (he's now in AR1010)
      READ_LONG 0x54 actOff
      FOR (READ_SHORT 0x58 numAct; numAct > 0x0; numAct -= 0x1) BEGIN
        READ_ASCII actOff + 0x80 char
        PATCH_IF !("%char%" STRING_COMPARE_CASE "DEZKIE") BEGIN
          WRITE_LONG actOff + 0x28 0x0 // Disable Dezkiel in AR1009
        END
        actOff += 0x110
      END
    END
    // Make default transitions autosave; enable travel to AR1010
    READ_LONG 0x5c trigOff
    FOR (READ_SHORT 0x5a numTrig; numTrig > 0x0; numTrig -= 0x1) BEGIN
      READ_SHORT trigOff + 0x20 type
      PATCH_IF (type == 0x2) BEGIN
        READ_ASCII trigOff + 0x38 destAre
        PATCH_IF (!("%destAre%" STRING_COMPARE_CASE "AR1008") ||
                  !("%destAre%" STRING_COMPARE_CASE "AR1009")) BEGIN
          READ_BYTE trigOff + 0x60 flag
          WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag
        END
      END
      PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN
        READ_ASCII trigOff name
        PATCH_IF !("%name%" STRING_COMPARE_CASE "DOOR1010") BEGIN
          WRITE_ASCII trigOff + 0x38 AR1010 #8 // Set destination area to AR1010
        END
      END
      trigOff += 0xc4
    END
    // Update number of entrances
    READ_LONG 0x6c numEntr
    WRITE_LONG 0x6c numEntr + 0x1
    // Add exit points to AR1008 and AR1009
    READ_LONG 0x68 entrOff
    entrOff += numEntr * 0x68 // Added as last entrance in file
    INSERT_BYTES entrOff 0x68
    WRITE_ASCII entrOff EXIT1010   // Entrance name
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1008") BEGIN
      WRITE_SHORT entrOff + 0x20 842 // Location X
      WRITE_SHORT entrOff + 0x22 307 // Location Y
      WRITE_SHORT entrOff + 0x24 15  // Facing direction
    END ELSE BEGIN // AR1009 patch
      WRITE_SHORT entrOff + 0x20 697 // Location X
      WRITE_SHORT entrOff + 0x22 259 // Location Y
    END
    READ_LONG 0x54 actOff
    PATCH_IF (actOff > entrOff) BEGIN
      WRITE_LONG 0x54 actOff + 0x68
    END
    READ_LONG 0x5c trigOff
    PATCH_IF (trigOff > entrOff) BEGIN
      WRITE_LONG 0x5c trigOff + 0x68
    END
    READ_LONG 0x60 sptOff
    PATCH_IF (sptOff > entrOff) BEGIN
      WRITE_LONG 0x60 sptOff + 0x68
    END
    READ_LONG 0x68 entrOff
    PATCH_IF (entrOff > entrOff) BEGIN
      WRITE_LONG 0x68 entrOff + 0x68
    END
    READ_LONG 0x70 contOff
    PATCH_IF !(contOff < entrOff) BEGIN
      WRITE_LONG 0x70 contOff + 0x68
    END
    READ_LONG 0x78 itmOff
    PATCH_IF !(itmOff < entrOff) BEGIN
      WRITE_LONG 0x78 itmOff + 0x68
    END
    READ_LONG 0x7c vertOff
    PATCH_IF !(vertOff < entrOff) BEGIN
      WRITE_LONG 0x7c vertOff + 0x68
    END
    READ_LONG 0x84 ambOff
    PATCH_IF !(ambOff < entrOff) BEGIN
      WRITE_LONG 0x84 ambOff + 0x68
    END
    READ_LONG 0x88 varOff
    PATCH_IF !(varOff < entrOff) BEGIN
      WRITE_LONG 0x88 varOff + 0x68
    END
    READ_LONG 0xa0 explOff
    PATCH_IF !(explOff < entrOff) BEGIN
      WRITE_LONG 0xa0 explOff + 0x68
    END
    READ_LONG 0xa8 doorOff
    PATCH_IF !(doorOff < entrOff) BEGIN
      WRITE_LONG 0xa8 doorOff + 0x68
    END
    READ_LONG 0xb0 animOff
    PATCH_IF !(animOff < entrOff) BEGIN
      WRITE_LONG 0xb0 animOff + 0x68
    END
    READ_LONG 0xb8 tobjOff
    PATCH_IF !(tobjOff < entrOff) BEGIN
      WRITE_LONG 0xb8 tobjOff + 0x68
    END
    READ_LONG 0xbc musOff
    PATCH_IF !(musOff < entrOff) BEGIN
      WRITE_LONG 0xbc musOff + 0x68
    END
    READ_LONG 0xc0 rspnOff
    PATCH_IF !(rspnOff < entrOff) BEGIN
      WRITE_LONG 0xc0 rspnOff + 0x68
    END
    READ_LONG 0xc4 mapnOff
    READ_LONG 0xc8 numMapn
    PATCH_IF (!(mapnOff < entrOff) && numMapn) BEGIN
      WRITE_LONG 0xc4 mapnOff + 0x68
    END
  END
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING AR1010.ARE OVERRIDE
  PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN
    // Update number of vertices
    READ_SHORT 0x80 numVert
    WRITE_SHORT 0x80 numVert + 0x4
    // Add vertices for new transition
    READ_LONG 0x7c vertOff
    vertOff += numVert * 0x4
    INSERT_BYTES vertOff 0x10
    WRITE_SHORT vertOff 478        // Location X (Vertex 0)
    WRITE_SHORT vertOff + 0x2 2719 // Location Y (Vertex 0)
    WRITE_SHORT vertOff + 0x4 545  // Location X (Vertex 1)
    WRITE_SHORT vertOff + 0x6 2762 // Location Y (Vertex 1)
    WRITE_SHORT vertOff + 0x8 497  // Location X (Vertex 2)
    WRITE_SHORT vertOff + 0xa 2815 // Location Y (Vertex 2)
    WRITE_SHORT vertOff + 0xc 345  // Location X (Vertex 3)
    WRITE_SHORT vertOff + 0xe 2815 // Location Y (Vertex 3)
    // Update number of triggers
    READ_SHORT 0x5a numTrig
    WRITE_SHORT 0x5a numTrig + 0x1
    // Update triggers offset, if required
    READ_LONG 0x5c trigOff
    PATCH_IF (trigOff > vertOff) BEGIN
      WRITE_LONG 0x5c trigOff + 0x10
      trigOff += trigOff + 0x10
    END
    // Make default transitions autosave
    FOR (i = numTrig; i > 0x0; i -= 0x1) BEGIN
      READ_SHORT trigOff + 0x20 type
      PATCH_IF (type == 0x2) BEGIN
        READ_ASCII trigOff + 0x38 destAre
        PATCH_IF !("%destAre%" STRING_COMPARE_CASE "AR1009") BEGIN
          READ_BYTE trigOff + 0x60 flag
          WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag
        END
      END
      trigOff += 0xc4
    END
    // Add usable transition to AR1008
    READ_LONG 0x5c trigOff
    trigOff += numTrig * 0xc4
    INSERT_BYTES trigOff 0xc4
    WRITE_ASCII trigOff DOOR1008        // Trigger name
    WRITE_ASCII trigOff + 0x38 AR1008   // Destination area
    WRITE_ASCII trigOff + 0x40 EXIT1010 // Destination exit point
    WRITE_LONG trigOff + 0x2c numVert   // Vertex index
    WRITE_LONG trigOff + 0x34 28        // Trigger cursor
    WRITE_LONG trigOff + 0x60 4         // Flags: party-required
    WRITE_LONG trigOff + 0x64 BNOT 0x0  // Activation text
    WRITE_SHORT trigOff + 0x20 2        // Trigger type
    WRITE_SHORT trigOff + 0x22 345      // Leftmost point
    WRITE_SHORT trigOff + 0x24 2719     // Topmost point
    WRITE_SHORT trigOff + 0x26 545      // Rightmost point
    WRITE_SHORT trigOff + 0x28 2815     // Bottommost point
    WRITE_SHORT trigOff + 0x2a 4        // Number of vertices
    WRITE_SHORT trigOff + 0x70 609      // Location X
    WRITE_SHORT trigOff + 0x72 2643     // Location Y
    READ_LONG 0x54 actOff
    PATCH_IF (actOff > trigOff) BEGIN
      WRITE_LONG 0x54 (actOff > vertOff) ? actOff + 0xd4 : actOff + 0xc4
    END
    READ_LONG 0x5c trigOff
    PATCH_IF (trigOff > trigOff) BEGIN
      WRITE_LONG 0x5c (trigOff > vertOff) ? trigOff + 0xd4 : trigOff + 0xc4
    END
    READ_LONG 0x60 sptOff
    PATCH_IF (sptOff > trigOff) BEGIN
      WRITE_LONG 0x60 (sptOff > vertOff) ? sptOff + 0xd4 : sptOff + 0xc4
    END
    READ_LONG 0x68 entrOff
    PATCH_IF (entrOff > trigOff) BEGIN
      WRITE_LONG 0x68 (entrOff > vertOff) ? entrOff + 0xd4 : entrOff + 0xc4
    END
    READ_LONG 0x70 contOff
    PATCH_IF !(contOff < trigOff) BEGIN
      WRITE_LONG 0x70 (contOff > vertOff) ? contOff + 0xd4 : contOff + 0xc4
    END
    READ_LONG 0x78 itmOff
    PATCH_IF !(itmOff < trigOff) BEGIN
      WRITE_LONG 0x78 (itmOff > vertOff) ? itmOff + 0xd4 : itmOff + 0xc4
    END
    READ_LONG 0x7c vertOff
    PATCH_IF !(vertOff < trigOff) BEGIN
      WRITE_LONG 0x7c (vertOff > vertOff) ? vertOff + 0xd4 : vertOff + 0xc4
    END
    READ_LONG 0x84 ambOff
    PATCH_IF !(ambOff < trigOff) BEGIN
      WRITE_LONG 0x84 !(ambOff < vertOff) ? ambOff + 0xd4 : ambOff + 0xc4
    END
    READ_LONG 0x88 varOff
    PATCH_IF !(varOff < trigOff) BEGIN
      WRITE_LONG 0x88 !(varOff < vertOff) ? varOff + 0xd4 : varOff + 0xc4
    END
    READ_LONG 0xa0 explOff
    PATCH_IF !(explOff < trigOff) BEGIN
      WRITE_LONG 0xa0 !(explOff < vertOff) ? explOff + 0xd4 : explOff + 0xc4
    END
    READ_LONG 0xa8 doorOff
    PATCH_IF !(doorOff < trigOff) BEGIN
      WRITE_LONG 0xa8 !(doorOff < vertOff) ? doorOff + 0xd4 : doorOff + 0xc4
    END
    READ_LONG 0xb0 animOff
    PATCH_IF !(animOff < trigOff) BEGIN
      WRITE_LONG 0xb0 !(animOff < vertOff) ? animOff + 0xd4 : animOff + 0xc4
    END
    READ_LONG 0xb8 tobjOff
    PATCH_IF !(tobjOff < trigOff) BEGIN
      WRITE_LONG 0xb8 !(tobjOff < vertOff) ? tobjOff + 0xd4 : tobjOff + 0xc4
    END
    READ_LONG 0xbc musOff
    PATCH_IF !(musOff < trigOff) BEGIN
      WRITE_LONG 0xbc !(musOff < vertOff) ? musOff + 0xd4 : musOff + 0xc4
    END
    READ_LONG 0xc0 rspnOff
    PATCH_IF !(rspnOff < trigOff) BEGIN
      WRITE_LONG 0xc0 !(rspnOff < vertOff) ? rspnOff + 0xd4 : rspnOff + 0xc4
    END
    READ_LONG 0xc4 mapnOff
    READ_LONG 0xc8 numMapn
    PATCH_IF (!(mapnOff < trigOff) && numMapn) BEGIN
      WRITE_LONG 0xc4 !(mapnOff < vertOff) ? mapnOff + 0xd4 : mapnOff + 0xc4
    END
  END
BUT_ONLY_IF_IT_CHANGES
Let me know if you have any suggestions or any concerns about the patch (from here on, it'll be fairly easy to make modifications).
« Last Edit: January 29, 2006, 02:13:03 AM by devSin »

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 hard stuff
« Reply #30 on: January 29, 2006, 12:38:34 PM »
Copy command added and changes made to the wiki.  Woofuckinghoo.  Thank you, Mr. Sin!
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #31 on: April 19, 2006, 09:37:30 PM »
I have no clue how to convert this properly for Tutu.  :(
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #32 on: April 19, 2006, 11:13:21 PM »
Assuming I don't totally suck:
Code: [Select]
COPY_EXISTING AR1008.ARE OVERRIDE // TUTU: Change to Tutu AR1008 resref
              AR1009.ARE OVERRIDE // TUTU: Change to Tutu AR1009 resref
  PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN // TUTU: Change to Tutu AR1009 resref
      // Remove Dezkiel from AR1009 (he's now in AR1010)
      READ_LONG 0x54 actOff
      FOR (READ_SHORT 0x58 numAct; numAct > 0x0; numAct -= 0x1) BEGIN
        READ_ASCII actOff + 0x80 char
        PATCH_IF !("%char%" STRING_COMPARE_CASE "DEZKIE") BEGIN // TUTU: Change to Tutu DEZKIE resref
          WRITE_LONG actOff + 0x28 0x0 // Disable Dezkiel in AR1009
        END
        actOff += 0x110
      END
    END
    // Make default transitions autosave; enable travel to AR1010
    READ_LONG 0x5c trigOff
    FOR (READ_SHORT 0x5a numTrig; numTrig > 0x0; numTrig -= 0x1) BEGIN
      READ_SHORT trigOff + 0x20 type
      PATCH_IF (type == 0x2) BEGIN
        READ_ASCII trigOff + 0x38 destAre
        PATCH_IF (!("%destAre%" STRING_COMPARE_CASE "AR1008") || // TUTU: Change to Tutu AR1008 resref
                  !("%destAre%" STRING_COMPARE_CASE "AR1009")) BEGIN // TUTU: Change to Tutu AR1009 resref
          READ_BYTE trigOff + 0x60 flag
          WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag
        END
      END
      PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN // TUTU: Change to Tutu AR1009 resref
        READ_ASCII trigOff name
        PATCH_IF !("%name%" STRING_COMPARE_CASE "DOOR1010") BEGIN
          WRITE_ASCII trigOff + 0x38 AR1010 #8 // Set destination area to AR1010 -- TUTU: Change to new area resref (if you want to call it UB1010 or FW1010 or something for Tutu)
        END
      END
      trigOff += 0xc4
    END
    // Update number of entrances
    READ_LONG 0x6c numEntr
    WRITE_LONG 0x6c numEntr + 0x1
    // Add exit points to AR1008 and AR1009
    READ_LONG 0x68 entrOff
    entrOff += numEntr * 0x68 // Added as last entrance in file
    INSERT_BYTES entrOff 0x68
    WRITE_ASCII entrOff EXIT1010   // Entrance name -- TUTU: Maybe change to new name (just to make it obvious that it's mod)
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1008") BEGIN // TUTU: Change to Tutu AR1008 resref
      WRITE_SHORT entrOff + 0x20 842 // Location X
      WRITE_SHORT entrOff + 0x22 307 // Location Y
      WRITE_SHORT entrOff + 0x24 15  // Facing direction
    END ELSE BEGIN // AR1009 patch
      WRITE_SHORT entrOff + 0x20 697 // Location X
      WRITE_SHORT entrOff + 0x22 259 // Location Y
    END
For AR1010, since TUTU sucks, I'd just grab an already converted version and copy it. Sorry, but FW1010 isn't going to exist if it's unused, right?

Let me know if the AR1008 and AR1009 patches work after making the resref changes. Hopefully they will.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #33 on: April 19, 2006, 11:17:25 PM »
Or, if you want, you can attach the Tutu area defs for 1008 and 1009, tell me the resref for Dezkiel, and I can update the wiki code once I'm reasonably sure it looks usable.

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #34 on: April 20, 2006, 09:16:46 AM »
Well, I think the problem is actually in the .tis file for AR1010.  It's not converted by Tutu at all, and I don't know what's involved in converting BG1 .tis files to BG2/Tutu.
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #35 on: April 20, 2006, 09:21:26 AM »
I would just try extracting it from BG1, adding the TIS header, and seeing if that works. I think it will; the area doesn't have any overlays, so there won't even be a problem with green water or anything.

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #36 on: April 20, 2006, 10:04:00 AM »
adding the TIS header
Yeah but... this is the point where I show my ignorance by stating that I don't even know what that means, really.  :(
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #37 on: April 20, 2006, 01:05:58 PM »
Page the Ding0. I'm utterly clueless when it comes to tilesets. I know they need a header if not BIFFed, but fuck if I know what it is.

My Ar1008 and Ar1009 patch should work fine for Tutu (after updating the resrefs); the BMPs, and hopefully Echon's WED, can be copied as-is.
The Ar1010 def can be copied, but the resrefs will have to be updated for Tutu; the TIS file (I wonder how big it is?).

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #38 on: May 13, 2006, 08:07:44 PM »
OK, this is the code I'm using for the AR1010 (FW1010) area restoration for Tutu:

Code: [Select]
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////                                                  \\\\\
///// Ice Island Level Two Restoration                 \\\\\
/////                                                  \\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\

BEGIN ~Ice Island Level Two Restoration~

// Author: devSin
// Email:
// Website:

REQUIRE_PREDICATE FILE_EXISTS_IN_GAME ~_ULGOTH.STO~ ~The Tales of the Sword Coast expansion is required for this component.~

// AR1010.TIS and AR1010.MOS already included with TotSC
COPY ~tutu_ub/FW1010~ ~OVERRIDE~

COPY_EXISTING FW1008.ARE OVERRIDE
              FW1009.ARE OVERRIDE
  PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "FW1009") BEGIN
      // Remove Dezkiel from FW1009 (he's now in AR1010)
      READ_LONG 0x54 actOff
      FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN
        READ_ASCII actOff + 0x80 char
        PATCH_IF !("%char%" STRING_COMPARE_CASE "_DEZKIE") BEGIN
          WRITE_LONG actOff + 0x28 0x0 // Disable Dezkiel in FW1009
        END
        actOff += 0x110
      END
    END
    // Make default transitions autosave; enable travel to AR1010
    READ_LONG 0x5c trigOff
    FOR (READ_SHORT 0x5a numTrig; numTrig; numTrig -= 0x1) BEGIN
      READ_SHORT trigOff + 0x20 type
      PATCH_IF (type == 0x2) BEGIN
        READ_ASCII trigOff + 0x38 destAre
        PATCH_IF !(("%destAre%" STRING_COMPARE_CASE "FW1008") &&
                   ("%destAre%" STRING_COMPARE_CASE "FW1009")) BEGIN
          READ_BYTE trigOff + 0x60 flag
          WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag
        END
      END
      PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "FW1009") BEGIN
        READ_ASCII trigOff name
        PATCH_IF !("%name%" STRING_COMPARE_CASE "DOOR1010") BEGIN
          WRITE_ASCII trigOff + 0x38 AR1010 #8 // Set destination area to AR1010
        END
      END
      trigOff += 0xc4
    END
    // Update number of entrances
    READ_LONG 0x6c numEntr
    WRITE_LONG 0x6c numEntr + 0x1
    // Add exit points for travel from FW1008 and FW1009
    READ_LONG 0x68 entrOff
    entrOff += numEntr * 0x68 // Added as last entrance in file
    INSERT_BYTES entrOff 0x68
    WRITE_ASCII entrOff EXIT1010 // Entrance name
    PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "FW1008") BEGIN
      WRITE_SHORT entrOff + 0x20 842 // Location X
      WRITE_SHORT entrOff + 0x22 307 // Location Y
      WRITE_SHORT entrOff + 0x24 15  // Facing direction
    END ELSE BEGIN // FW1009 patch
      WRITE_SHORT entrOff + 0x20 697 // Location X
      WRITE_SHORT entrOff + 0x22 259 // Location Y
    END
    READ_LONG 0x54 actOff
    PATCH_IF (actOff > entrOff) BEGIN
      WRITE_LONG 0x54 actOff + 0x68
    END
    READ_LONG 0x5c trigOff
    PATCH_IF (trigOff > entrOff) BEGIN
      WRITE_LONG 0x5c trigOff + 0x68
    END
    READ_LONG 0x60 sptOff
    PATCH_IF (sptOff > entrOff) BEGIN
      WRITE_LONG 0x60 sptOff + 0x68
    END
    READ_LONG 0x68 entrOff
    PATCH_IF (entrOff > entrOff) BEGIN
      WRITE_LONG 0x68 entrOff + 0x68
    END
    READ_LONG 0x70 contOff
    PATCH_IF !(contOff < entrOff) BEGIN
      WRITE_LONG 0x70 contOff + 0x68
    END
    READ_LONG 0x78 itmOff
    PATCH_IF !(itmOff < entrOff) BEGIN
      WRITE_LONG 0x78 itmOff + 0x68
    END
    READ_LONG 0x7c vertOff
    PATCH_IF !(vertOff < entrOff) BEGIN
      WRITE_LONG 0x7c vertOff + 0x68
    END
    READ_LONG 0x84 ambOff
    PATCH_IF !(ambOff < entrOff) BEGIN
      WRITE_LONG 0x84 ambOff + 0x68
    END
    READ_LONG 0x88 varOff
    PATCH_IF !(varOff < entrOff) BEGIN
      WRITE_LONG 0x88 varOff + 0x68
    END
    READ_LONG 0xa0 explOff
    PATCH_IF !(explOff < entrOff) BEGIN
      WRITE_LONG 0xa0 explOff + 0x68
    END
    READ_LONG 0xa8 doorOff
    PATCH_IF !(doorOff < entrOff) BEGIN
      WRITE_LONG 0xa8 doorOff + 0x68
    END
    READ_LONG 0xb0 animOff
    PATCH_IF !(animOff < entrOff) BEGIN
      WRITE_LONG 0xb0 animOff + 0x68
    END
    READ_LONG 0xb8 tobjOff
    PATCH_IF !(tobjOff < entrOff) BEGIN
      WRITE_LONG 0xb8 tobjOff + 0x68
    END
    READ_LONG 0xbc musOff
    PATCH_IF !(musOff < entrOff) BEGIN
      WRITE_LONG 0xbc musOff + 0x68
    END
    READ_LONG 0xc0 rspnOff
    PATCH_IF !(rspnOff < entrOff) BEGIN
      WRITE_LONG 0xc0 rspnOff + 0x68
    END
    READ_LONG 0xc4 mapnOff
    READ_LONG 0xc8 numMapn
    PATCH_IF (!(mapnOff < entrOff) && numMapn) BEGIN
      WRITE_LONG 0xc4 mapnOff + 0x68
    END
  END
BUT_ONLY_IF_IT_CHANGES

COPY_EXISTING FW1010.ARE OVERRIDE
WRITE_ASCII 0x08 ~FW1010~ // assign the correct WED
  PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN
    // Update number of vertices
    READ_SHORT 0x80 numVert
    WRITE_SHORT 0x80 numVert + 0x4
    // Add vertices for new transition
    READ_LONG 0x7c vertOff
    vertOff += numVert * 0x4 // Added as last vertices in file
    INSERT_BYTES vertOff 0x10
    WRITE_SHORT vertOff 478        // Location X (Vertex 0)
    WRITE_SHORT vertOff + 0x2 2719 // Location Y (Vertex 0)
    WRITE_SHORT vertOff + 0x4 545  // Location X (Vertex 1)
    WRITE_SHORT vertOff + 0x6 2762 // Location Y (Vertex 1)
    WRITE_SHORT vertOff + 0x8 497  // Location X (Vertex 2)
    WRITE_SHORT vertOff + 0xa 2815 // Location Y (Vertex 2)
    WRITE_SHORT vertOff + 0xc 345  // Location X (Vertex 3)
    WRITE_SHORT vertOff + 0xe 2815 // Location Y (Vertex 3)
    // Update number of triggers
    READ_SHORT 0x5a numTrig
    WRITE_SHORT 0x5a numTrig + 0x1
    // Update triggers offset, if required
    READ_LONG 0x5c trigOff
    PATCH_IF (trigOff > vertOff) BEGIN
      WRITE_LONG 0x5c trigOff + 0x10
      trigOff += trigOff + 0x10
    END
    // Make default transitions autosave
    FOR (i = numTrig; i; i -= 0x1) BEGIN
      READ_SHORT trigOff + 0x20 type
      PATCH_IF (type == 0x2) BEGIN
        READ_ASCII trigOff + 0x38 destAre
        PATCH_IF !("%destAre%" STRING_COMPARE_CASE "FW1009") BEGIN
          READ_BYTE trigOff + 0x60 flag
          WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag
        END
      END
      trigOff += 0xc4
    END
    // Add usable transition to FW1008
    READ_LONG 0x5c trigOff
    trigOff += numTrig * 0xc4 // Added as last trigger in file
    INSERT_BYTES trigOff 0xc4
    WRITE_ASCII trigOff DOOR1008        // Trigger name
    WRITE_ASCII trigOff + 0x38 FW1008   // Destination area
    WRITE_ASCII trigOff + 0x40 EXIT1010 // Destination exit point
    WRITE_LONG trigOff + 0x2c numVert   // Vertex index
    WRITE_LONG trigOff + 0x34 28        // Trigger cursor
    WRITE_LONG trigOff + 0x60 4         // Flags: party-required
    WRITE_LONG trigOff + 0x64 BNOT 0x0  // Activation text
    WRITE_SHORT trigOff + 0x20 2        // Trigger type
    WRITE_SHORT trigOff + 0x22 345      // Leftmost point
    WRITE_SHORT trigOff + 0x24 2719     // Topmost point
    WRITE_SHORT trigOff + 0x26 545      // Rightmost point
    WRITE_SHORT trigOff + 0x28 2815     // Bottommost point
    WRITE_SHORT trigOff + 0x2a 4        // Number of vertices
    WRITE_SHORT trigOff + 0x70 609      // Location X
    WRITE_SHORT trigOff + 0x72 2643     // Location Y
    READ_LONG 0x54 actOff
    PATCH_IF (actOff > trigOff) BEGIN
      WRITE_LONG 0x54 (actOff > vertOff) ? actOff + 0xd4 : actOff + 0xc4
    END
    READ_LONG 0x5c trigOff
    PATCH_IF (trigOff > trigOff) BEGIN
      WRITE_LONG 0x5c (trigOff > vertOff) ? trigOff + 0xd4 : trigOff + 0xc4
    END
    READ_LONG 0x60 sptOff
    PATCH_IF (sptOff > trigOff) BEGIN
      WRITE_LONG 0x60 (sptOff > vertOff) ? sptOff + 0xd4 : sptOff + 0xc4
    END
    READ_LONG 0x68 entrOff
    PATCH_IF (entrOff > trigOff) BEGIN
      WRITE_LONG 0x68 (entrOff > vertOff) ? entrOff + 0xd4 : entrOff + 0xc4
    END
    READ_LONG 0x70 contOff
    PATCH_IF !(contOff < trigOff) BEGIN
      WRITE_LONG 0x70 (contOff > vertOff) ? contOff + 0xd4 : contOff + 0xc4
    END
    READ_LONG 0x78 itmOff
    PATCH_IF !(itmOff < trigOff) BEGIN
      WRITE_LONG 0x78 (itmOff > vertOff) ? itmOff + 0xd4 : itmOff + 0xc4
    END
    READ_LONG 0x7c vertOff
    PATCH_IF !(vertOff < trigOff) BEGIN
      WRITE_LONG 0x7c (vertOff > vertOff) ? vertOff + 0xd4 : vertOff + 0xc4
    END
    READ_LONG 0x84 ambOff
    PATCH_IF !(ambOff < trigOff) BEGIN
      WRITE_LONG 0x84 !(ambOff < vertOff) ? ambOff + 0xd4 : ambOff + 0xc4
    END
    READ_LONG 0x88 varOff
    PATCH_IF !(varOff < trigOff) BEGIN
      WRITE_LONG 0x88 !(varOff < vertOff) ? varOff + 0xd4 : varOff + 0xc4
    END
    READ_LONG 0xa0 explOff
    PATCH_IF !(explOff < trigOff) BEGIN
      WRITE_LONG 0xa0 !(explOff < vertOff) ? explOff + 0xd4 : explOff + 0xc4
    END
    READ_LONG 0xa8 doorOff
    PATCH_IF !(doorOff < trigOff) BEGIN
      WRITE_LONG 0xa8 !(doorOff < vertOff) ? doorOff + 0xd4 : doorOff + 0xc4
    END
    READ_LONG 0xb0 animOff
    PATCH_IF !(animOff < trigOff) BEGIN
      WRITE_LONG 0xb0 !(animOff < vertOff) ? animOff + 0xd4 : animOff + 0xc4
    END
    READ_LONG 0xb8 tobjOff
    PATCH_IF !(tobjOff < trigOff) BEGIN
      WRITE_LONG 0xb8 !(tobjOff < vertOff) ? tobjOff + 0xd4 : tobjOff + 0xc4
    END
    READ_LONG 0xbc musOff
    PATCH_IF !(musOff < trigOff) BEGIN
      WRITE_LONG 0xbc !(musOff < vertOff) ? musOff + 0xd4 : musOff + 0xc4
    END
    READ_LONG 0xc0 rspnOff
    PATCH_IF !(rspnOff < trigOff) BEGIN
      WRITE_LONG 0xc0 !(rspnOff < vertOff) ? rspnOff + 0xd4 : rspnOff + 0xc4
    END
    READ_LONG 0xc4 mapnOff
    READ_LONG 0xc8 numMapn
    PATCH_IF (!(mapnOff < trigOff) && numMapn) BEGIN
      WRITE_LONG 0xc4 !(mapnOff < vertOff) ? mapnOff + 0xd4 : mapnOff + 0xc4
    END
  END
BUT_ONLY_IF_IT_CHANGES

The files I'm having it copy over are at this link:  http://mods.pocketplane.net/BG1UB-FW1010.rar

I'm sure I'm missing something--perhaps the WED file needs to be edited differently (I changed the reference to the .tis file).  The .tis  file is just directly exported from NI.  I don't know what else to do with it at the moment.  The MOS file is from Harden Cooner's Tutu Addon mod. 

Yeah, it's crashing.  :(
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #39 on: May 13, 2006, 08:40:28 PM »
Code: [Select]
WRITE_ASCII 0x08 ~FW1010~ // assign the correct WEDUse #8. Makes no difference.

The TIS file will need a header if it's in the override. You should be able to simply export the BG1 AR1010.MOS (and rename to FW1010 or whatever). You also should rename the height and LUM maps, and the search reference (again, FW1010 or whatever).

Does only 1010 crash, or are 1008 and 1009 causing problems too?
« Last Edit: May 13, 2006, 08:42:49 PM by devSin »

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #40 on: May 13, 2006, 09:06:33 PM »
AR1008 and AR1009 are working OK.  Well, FWx, that is.  When I transition from 1009 (I think that's the right one--the maze with the wizards), up to FW1010, it crashes.  The .bmps are all renamed, too.  Will fix the #8.
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #41 on: May 13, 2006, 09:36:04 PM »
I think I might know what the problem is--the actors.  I don't think the RESREFs are present in BG2, so we need to convert them to the Tutu RESREFs...

(DEZKIE --> _DEZKIE, WOLWI --> _WOLFWI, BEARPO --> _BEARPO)

This is what DLTCEP spit out when I loaded the edited FW1010.are file:

Quote
Bad creature reference 'DEZKIE' in actor header #1 (DEZKIEL [1360.2362])
Bad creature reference 'WOLFWI' in actor header #2 (WINTER WOLF [2313.1590])
Bad creature reference 'WOLFWI' in actor header #3 (WINTER WOLF [2394.1690])
Bad creature reference 'WOLFWI' in actor header #4 (WINTER WOLF [1910.1092])
Bad creature reference 'WOLFWI' in actor header #5 (WINTER WOLF [2181.757])
Bad creature reference 'WOLFWI' in actor header #6 (WINTER WOLF [461.991])
Bad creature reference 'WOLFWI' in actor header #7 (WINTER WOLF [288.298])
Bad creature reference 'WOLFWI' in actor header #8 (WINTER WOLF [1309.704])
Bad creature reference 'WOLFWI' in actor header #9 (WINTER WOLF [1169.677])
Bad creature reference 'BEARPO' in actor header #10 (MOUNTAIN BEAR [1145.2126])
Bad creature reference 'BEARPO' in actor header #11 (MOUNTAIN BEAR [1525.2034])
Bad creature reference 'WOLFWI' in actor header #12 (WINTER WOLF [608.609])
Bad creature reference 'WOLFWI' in actor header #13 (WINTER WOLF [2077.466])
Invalid destination reference 'EXIT1010' for area 'AR1009' (causes crash) in active region #1 (DOOR1009 [926.21])
Missing ambient entry #1 in ambient #1 (CANDLEKEEP CATACOMBS 01 [320.320])
Ambient reference is 'AMB_N20A', ambient counter is 1
Missing ambient entry #1 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15A', ambient counter is 4
Missing ambient entry #2 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15B', ambient counter is 4
Missing ambient entry #3 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15C', ambient counter is 4
Missing ambient entry #4 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15D', ambient counter is 4
Missing ambient entry #1 in ambient #4 (GLOBAL HAUNTS 01 [1728.960])
Ambient reference is 'AMB_M35D', ambient counter is 2
Missing ambient entry #2 in ambient #4 (GLOBAL HAUNTS 01 [1728.960])
Ambient reference is 'AMB_M16X', ambient counter is 2
« Last Edit: May 13, 2006, 09:39:39 PM by icelus »
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #42 on: May 13, 2006, 09:41:31 PM »
Also, Dezkiel is indeed showing up in AR1009, at least he's listed as an actor in NI.  :(
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline Macready

  • Planewalker
  • *****
  • Posts: 1801
    • EasyTutu
Re: AR1010 restoration
« Reply #43 on: May 13, 2006, 10:10:46 PM »
Hello -

I think I might know what the problem is--the actors.  I don't think the RESREFs are present in BG2, so we need to convert them to the Tutu RESREFs...

(DEZKIE --> _DEZKIE, WOLWI --> _WOLFWI, BEARPO --> _BEARPO)

This is what DLTCEP spit out when I loaded the edited FW1010.are file:

Quote
Bad creature reference 'DEZKIE' in actor header #1 (DEZKIEL [1360.2362])
Bad creature reference 'WOLFWI' in actor header #2 (WINTER WOLF [2313.1590])
Bad creature reference 'WOLFWI' in actor header #3 (WINTER WOLF [2394.1690])
Bad creature reference 'WOLFWI' in actor header #4 (WINTER WOLF [1910.1092])
Bad creature reference 'WOLFWI' in actor header #5 (WINTER WOLF [2181.757])
Bad creature reference 'WOLFWI' in actor header #6 (WINTER WOLF [461.991])
Bad creature reference 'WOLFWI' in actor header #7 (WINTER WOLF [288.298])
Bad creature reference 'WOLFWI' in actor header #8 (WINTER WOLF [1309.704])
Bad creature reference 'WOLFWI' in actor header #9 (WINTER WOLF [1169.677])
Bad creature reference 'BEARPO' in actor header #10 (MOUNTAIN BEAR [1145.2126])
Bad creature reference 'BEARPO' in actor header #11 (MOUNTAIN BEAR [1525.2034])
Bad creature reference 'WOLFWI' in actor header #12 (WINTER WOLF [608.609])
Bad creature reference 'WOLFWI' in actor header #13 (WINTER WOLF [2077.466])
Invalid destination reference 'EXIT1010' for area 'AR1009' (causes crash) in active region #1 (DOOR1009 [926.21])
Missing ambient entry #1 in ambient #1 (CANDLEKEEP CATACOMBS 01 [320.320])
Ambient reference is 'AMB_N20A', ambient counter is 1
Missing ambient entry #1 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15A', ambient counter is 4
Missing ambient entry #2 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15B', ambient counter is 4
Missing ambient entry #3 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15C', ambient counter is 4
Missing ambient entry #4 in ambient #2 (DRIPPING WATER 01 [320.320])
Ambient reference is 'AMB_E15D', ambient counter is 4
Missing ambient entry #1 in ambient #4 (GLOBAL HAUNTS 01 [1728.960])
Ambient reference is 'AMB_M35D', ambient counter is 2
Missing ambient entry #2 in ambient #4 (GLOBAL HAUNTS 01 [1728.960])
Ambient reference is 'AMB_M16X', ambient counter is 2

I looks like the area needs to be edited to connect to FW1009 instead of AR1009.

Also, ambients in Tutu generally have underscore resrefs (i.e., _MB... instead of AMB...).
EasyTutu: Tutu installation made simple.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #44 on: May 13, 2006, 10:13:49 PM »
Also, Dezkiel is indeed showing up in AR1009, at least he's listed as an actor in NI.  :(
He will be, but he shouldn't show up when the area is loaded (he should just get purged). I decided not to delete the actor struct for obscure reasons (compatibility).

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #45 on: May 13, 2006, 10:15:32 PM »
Oh.  But he did show up, right in front of the door to AR1010.  :(

Also, for Tutu, would it just be easier to make all the necessary changes to the FW1010.are file and copy it direct to the override?  Tutu doesn't include it, so...
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline Macready

  • Planewalker
  • *****
  • Posts: 1801
    • EasyTutu
Re: AR1010 restoration
« Reply #46 on: May 13, 2006, 10:20:23 PM »
Hello -

Oh.  But he did show up, right in front of the door to AR1010.  :(

Also, for Tutu, would it just be easier to make all the necessary changes to the FW1010.are file and copy it direct to the override?  Tutu doesn't include it, so...

Just be wary of strrefs whenever you consider a straight file copy.  Rest spawns, map notes, whatever else.
EasyTutu: Tutu installation made simple.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #47 on: May 13, 2006, 10:20:41 PM »
Oh.  But he did show up, right in front of the door to AR1010.  :(
Fuck. Are you sure the resref is right? Did you ever check in BG1? If it doesn't work in BG2, it may not work in BG1, and I WILL LOOK LIKE A COMPLETE ASS.

Also, for Tutu, would it just be easier to make all the necessary changes to the FW1010.are file and copy it direct to the override?  Tutu doesn't include it, so...
That would work. The only problems should be the resrefs (screw Tutu), the TIS (screw IE), and possibly teh crash trying to load ambient WAVs from compressed BIFFs (screw Mark D.). You can SAY the rest spawn Strrefs.
« Last Edit: May 13, 2006, 10:22:31 PM by devSin »

Offline icelus

  • Global Moderator
  • Planewalker
  • *****
  • Posts: 3173
  • Gender: Male
Re: AR1010 restoration
« Reply #48 on: May 13, 2006, 10:23:06 PM »
Yeah, it was in BG1 and BG2.  :(
Sorry, when I did the quick test of that component I didn't think to check for Dezkiel.  I just went around CTRL-Y'ing everyone to make sure I could get to the area.
<Moongaze> Luckily BWL has a very understanding and friendly admin.

Offline devSin

  • Moderator
  • Planewalker
  • *****
  • Posts: 1632
  • Gender: Male
Re: AR1010 restoration
« Reply #49 on: May 13, 2006, 10:24:32 PM »
So, it really doesn't work (at all, ever, in any IE version)?

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?: