Smoketest Posted October 15, 2006 Share Posted October 15, 2006 As specified in the title, AR0333 has its exits and transition triggers reversed. You leave AR0332 by a northeastern exit, but appear on the northeastern side of AR0333. If you try to leave AR0333 by the southwestern doorway, you'll end up outside. One could try to justify this by the odd layout of the building in the Docks District, but for that matter the rooms are rotated 90 degrees so it still doesn't quite fit. I went for the optical fix. I left the structures alone and switched the names as well as the target areas in each transition. This allows me to leave AR0332 by the NE doorway and arrive in AR0333 by the SW doorway. I can then go back outside by taking the NE doorway in AR0333, or I can return to AR0332 (NE side) by taking the SW doorway of AR0333. Again, this may or may not be viewed as a bug. The transitions certainly work, but it made me think I was in Watcher's Keep again. Link to comment
CamDawg Posted November 5, 2006 Share Posted November 5, 2006 If they were simply off by a minor rotation instead of completely reversed, I might think otherwise--but this is definitely a bug. // ar0333.are entry/exit points are reversed; undoing the Escher architecture COPY_EXISTING ~ar0333.are~ ~override~ READ_SHORT 0x5a "info_num" READ_LONG 0x5c "info_off" READ_LONG 0x68 "enter_off" READ_LONG 0x6c "enter_num" FOR (index = 0; index < info_num; index = index + 1) BEGIN // swap transition (exit) points READ_ASCII ("%info_off%" + 0x38 + (0xc4 * "%index%")) "area" PATCH_IF ("ar0300" STRING_COMPARE_CASE "%area%" = 0) BEGIN WRITE_ASCII ("%info_off%" + (0xc4 * "%index%")) "Tran0332" #32 // transition point name WRITE_ASCII ("%info_off%" + 0x38 + (0xc4 * "%index%")) "ar0332" #8 // destination area WRITE_ASCII ("%info_off%" + 0x40 + (0xc4 * "%index%")) "Exit0333" #8 // exit point END ELSE PATCH_IF ("ar0332" STRING_COMPARE_CASE "%area%" = 0) BEGIN WRITE_ASCII ("%info_off%" + (0xc4 * "%index%")) "Tran0300" #32 // transition point name WRITE_ASCII ("%info_off%" + 0x38 + (0xc4 * "%index%")) "ar0300" #8 // destination area WRITE_ASCII ("%info_off%" + 0x40 + (0xc4 * "%index%")) "Exit0333" #8 // exit point END END FOR (index = 0; index < enter_num; index = index + 1) BEGIN // swap entry points READ_ASCII ("%enter_off%" + ("%index%" * 0x68)) "name" PATCH_IF ("%name%" STRING_COMPARE_CASE "Exit0300" = 0) BEGIN WRITE_ASCII ("%enter_off%" + ("%index%" * 0x68)) "Exit0332" END ELSE PATCH_IF ("%name%" STRING_COMPARE_CASE "Exit0332" = 0) BEGIN WRITE_ASCII ("%enter_off%" + ("%index%" * 0x68)) "Exit0300" END END BUT_ONLY_IF_IT_CHANGES Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.