Would it be correct then to classify rooms with area 0 as a bug then? What
repercussions would there be if we disallowed the 0 area index, and use -1
as a 'void' area? The import code could re-classify area 0 if it exists to
deal with compatibility.


On Mon, Sep 23, 2013 at 10:48 PM, Stephen Lyons
<1226...@bugs.launchpad.net>wrote:

> Ah, one of those patches I sent you Heiko overhauls the room exit
> dialogue though I don't think it'll be hit by anything that revises the
> TArea code.
>
> I notice from the recent git master branch that setting a normal room's
> area to 0 seems to be permitted by the lua code but it really messes
> things up for that room - the mapper can't seem to decide which area the
> room is in and I think the mapper code draws both "in area" and "out of
> area" exits to (or from?) that room.  Using the lua command to then move
> the room to another area (or possibly back to the original one) fails
> with a "room already exists" sort of message (sorry can't be precise as
> don't have development pc booted as I write).  I think that trying to
> move the room (original area)->"0"->(different area) ends up with it
> being duplicated and that does "not work well" 8-/ in the current code...!
>
> Inspecting the code - I'm not clear how TRoom::setArea( int _areaID )
> called from TMap::setRoomArea( int _areaID ) called from either
> TLuaInterpreter::setRoomArea() or from somewhere in T2DMap.cpp behaves
> if the room concerned has already been allocated to an area.  I can't
> see where the room is removed from the TArea(*)->rooms for the *old*
> area (or its limits recalculated).  I may be missing something of course
> but I'm suspicious!
>
>
> On 23/09/13 07:22, Heiko wrote:
> > No, I don't think so.
> >
> > Am 20.09.2013 16:24, schrieb Chris:
> >> Heiko,
> >>
> >> Do you have any uncommitted work to the mapper that would make this a
> waste
> >> of time to pursue at the moment?
> >>
> >>
> >> On Thu, Sep 19, 2013 at 5:45 PM, Vadim Peretokin <vpereto...@gmail.com
> >wrote:
> >>
> >>> Yeah, I am in agreement there - I wouldn't go down the path of all in
> one.
> >>> We could add it for conveniences sake - for example we have the all in
> one
> >>> function to creating miniconsoles, but we also have the option of
> doing it
> >>> step by step. However with Lua's ordered arguments (unless you're using
> >>> tables, which does not make for an efficient API) then tacking
> everything
> >>> to the end of a function becomes unwieldy.
> >>>
> >>> I've never used area 0 really. It's mostly annoying in the fact that it
> >>> shows up in the list of areas the map has and in the mapper widget as a
> >>> blank entry. I'd support hiding it from the API (partially - so we
> don't
> >>> see it, but can use it) and the user (not showing in the mapper
> widget) and
> >>> making use of it as the temporary void storage.
> >>>
> >>> --
> >>> You received this bug notification because you are subscribed to the
> bug
> >>> report.
> >>> https://bugs.launchpad.net/bugs/1226558
> >>>
> >>> Title:
> >>>    getRoom in TArea causes seg fault on map creation
> >>>
> >>> Status in Mudlet the MUD client:
> >>>    New
> >>>
> >>> Bug description:
> >>>    Creating a new map with this code on the latest development branch
> >>>    causes this backtrace:
> >>>
> >>>    0     TArea::fast_ausgaengeBestimmen  TArea.cpp       168
> 0x5128bb
> >>>    1     TMap::setExit   TMap.cpp        304     0x5281ca
> >>>    2     TLuaInterpreter::setExit        TLuaInterpreter.cpp     6650
> >>>   0x492075
> >>>    3     ??      C:\mingw32\lib\lua51.dll                0x66d862e0
> >>>    4     ??      C:\mingw32\lib\lua51.dll                0x66d8ffa6
> >>>    5     ??      C:\mingw32\lib\lua51.dll                0x66d866e0
> >>>    6     ??      C:\mingw32\lib\lua51.dll                0x66d81590
> >>>    7     ??      C:\mingw32\lib\lua51.dll                0x66d85ad6
> >>>    8     ??      C:\mingw32\lib\lua51.dll                0x66d86843
> >>>    9     ??      C:\mingw32\lib\lua51.dll                0x66d82870
> >>>    10    TLuaInterpreter::compile        TLuaInterpreter.cpp     9649
> >>>   0x49ce7a
> >>>    11    TScript::compileScript  TScript.cpp     150     0x4b04d7
> >>>    12    TScript::setScript      TScript.cpp     143     0x4b048e
> >>>    13    dlgTriggerEditor::saveScript    dlgTriggerEditor.cpp    4282
> >>>   0x456ad9
> >>>    14    dlgTriggerEditor::slot_saveScriptAfterEdit
> >>>   dlgTriggerEditor.cpp    4178    0x456799
> >>>    15    dlgTriggerEditor::slot_save_edit        dlgTriggerEditor.cpp
> >>>   6932    0x46a642
> >>>    16    dlgTriggerEditor::qt_static_metacall
>  moc_dlgTriggerEditor.cpp
> >>>       509     0x57ecd9
> >>>    17    QMetaObject::activate   qobject.cpp     3479    0x4c94cd0
> >>>    18    QMetaObject::activate   qobject.cpp     3354    0x4c94672
> >>>    19    QAction::triggered      moc_qaction.cpp 356     0x11674669
> >>>    20    QAction::activate       qaction.cpp     1175    0x11673c1e
> >>>    ...   <More>
> >>>
> >>>
> >>>    code:
> >>>
> >>>    -------------------------------------------------
> >>>    --         Put your Lua functions here.        --
> >>>    --                                             --
> >>>    -- Note that you can also use external Scripts --
> >>>    -------------------------------------------------
> >>>    function makeMap()
> >>>    id = 0
> >>>    for i=0,100 do
> >>>          for j=0, 100 do
> >>>                  addRoom(id)
> >>>                  --setRoomArea(id,0) --uncomment this and remove below
> call
> >>> to avoid seg faults
> >>>                  setRoomName(id, tostring(id))
> >>>                  setRoomCoordinates(id, i, j, 0)
> >>>                  setExit(id-1,id,1)
> >>>                  setExit(id,id-1,2)
> >>>                  setRoomArea(id,0)
> >>>                  id = id+1
> >>>          end
> >>>    end
> >>>    end
> >>>
> >>>    function makeLabels()
> >>>          id=1
> >>>          for i=0,100 do
> >>>                  for j=0, 100 do
> >>>                          --display(id)
> >>>                          x,y,z = getRoomCoordinates(id)
> >>>
>  createMapLabel(0,tostring(id),x,y,z,0,255,0,0,0,0)
> >>>                          id = id+1
> >>>                  end
> >>>          end
> >>>    end
> >>>
> >>>    --makeMap()
> >>>    --makeLabels()
> >>>    centerview(1)
> >>>
> >>>    uncomment makeMap and it crashes. It fails when id is 1 as well, so
> it
> >>>    isn't because of the i-1 setExit bit. It's caused by mpRoomDB not
> >>>    being initialized because there is no area created. Even post
> >>>    creation, the room needs to be assigned to an area first before any
> >>>    calls to mpRoomDB are called, else it will seg fault. It seems like
> we
> >>>    need some 'void' area that has no name and is just an abyss for
> rooms
> >>>    waiting to be allocated to avoid breaking scripts.
> >>>
> >>> To manage notifications about this bug go to:
> >>> https://bugs.launchpad.net/mudlet/+bug/1226558/+subscriptions
> >>>
> >
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1226558
>
> Title:
>   getRoom in TArea causes seg fault on map creation
>
> Status in Mudlet the MUD client:
>   New
>
> Bug description:
>   Creating a new map with this code on the latest development branch
>   causes this backtrace:
>
>   0     TArea::fast_ausgaengeBestimmen  TArea.cpp       168     0x5128bb
>   1     TMap::setExit   TMap.cpp        304     0x5281ca
>   2     TLuaInterpreter::setExit        TLuaInterpreter.cpp     6650
>  0x492075
>   3     ??      C:\mingw32\lib\lua51.dll                0x66d862e0
>   4     ??      C:\mingw32\lib\lua51.dll                0x66d8ffa6
>   5     ??      C:\mingw32\lib\lua51.dll                0x66d866e0
>   6     ??      C:\mingw32\lib\lua51.dll                0x66d81590
>   7     ??      C:\mingw32\lib\lua51.dll                0x66d85ad6
>   8     ??      C:\mingw32\lib\lua51.dll                0x66d86843
>   9     ??      C:\mingw32\lib\lua51.dll                0x66d82870
>   10    TLuaInterpreter::compile        TLuaInterpreter.cpp     9649
>  0x49ce7a
>   11    TScript::compileScript  TScript.cpp     150     0x4b04d7
>   12    TScript::setScript      TScript.cpp     143     0x4b048e
>   13    dlgTriggerEditor::saveScript    dlgTriggerEditor.cpp    4282
>  0x456ad9
>   14    dlgTriggerEditor::slot_saveScriptAfterEdit
>  dlgTriggerEditor.cpp    4178    0x456799
>   15    dlgTriggerEditor::slot_save_edit        dlgTriggerEditor.cpp
>  6932    0x46a642
>   16    dlgTriggerEditor::qt_static_metacall    moc_dlgTriggerEditor.cpp
>      509     0x57ecd9
>   17    QMetaObject::activate   qobject.cpp     3479    0x4c94cd0
>   18    QMetaObject::activate   qobject.cpp     3354    0x4c94672
>   19    QAction::triggered      moc_qaction.cpp 356     0x11674669
>   20    QAction::activate       qaction.cpp     1175    0x11673c1e
>   ...   <More>
>
>
>   code:
>
>   -------------------------------------------------
>   --         Put your Lua functions here.        --
>   --                                             --
>   -- Note that you can also use external Scripts --
>   -------------------------------------------------
>   function makeMap()
>   id = 0
>   for i=0,100 do
>         for j=0, 100 do
>                 addRoom(id)
>                 --setRoomArea(id,0) --uncomment this and remove below call
> to avoid seg faults
>                 setRoomName(id, tostring(id))
>                 setRoomCoordinates(id, i, j, 0)
>                 setExit(id-1,id,1)
>                 setExit(id,id-1,2)
>                 setRoomArea(id,0)
>                 id = id+1
>         end
>   end
>   end
>
>   function makeLabels()
>         id=1
>         for i=0,100 do
>                 for j=0, 100 do
>                         --display(id)
>                         x,y,z = getRoomCoordinates(id)
>                         createMapLabel(0,tostring(id),x,y,z,0,255,0,0,0,0)
>                         id = id+1
>                 end
>         end
>   end
>
>   --makeMap()
>   --makeLabels()
>   centerview(1)
>
>   uncomment makeMap and it crashes. It fails when id is 1 as well, so it
>   isn't because of the i-1 setExit bit. It's caused by mpRoomDB not
>   being initialized because there is no area created. Even post
>   creation, the room needs to be assigned to an area first before any
>   calls to mpRoomDB are called, else it will seg fault. It seems like we
>   need some 'void' area that has no name and is just an abyss for rooms
>   waiting to be allocated to avoid breaking scripts.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mudlet/+bug/1226558/+subscriptions
>

-- 
You received this bug notification because you are a member of Mudlet
Makers, which is subscribed to Mudlet.
https://bugs.launchpad.net/bugs/1226558

Title:
  getRoom in TArea causes seg fault on map creation

Status in Mudlet the MUD client:
  New

Bug description:
  Creating a new map with this code on the latest development branch
  causes this backtrace:

  0     TArea::fast_ausgaengeBestimmen  TArea.cpp       168     0x5128bb        
  1     TMap::setExit   TMap.cpp        304     0x5281ca        
  2     TLuaInterpreter::setExit        TLuaInterpreter.cpp     6650    
0x492075        
  3     ??      C:\mingw32\lib\lua51.dll                0x66d862e0      
  4     ??      C:\mingw32\lib\lua51.dll                0x66d8ffa6      
  5     ??      C:\mingw32\lib\lua51.dll                0x66d866e0      
  6     ??      C:\mingw32\lib\lua51.dll                0x66d81590      
  7     ??      C:\mingw32\lib\lua51.dll                0x66d85ad6      
  8     ??      C:\mingw32\lib\lua51.dll                0x66d86843      
  9     ??      C:\mingw32\lib\lua51.dll                0x66d82870      
  10    TLuaInterpreter::compile        TLuaInterpreter.cpp     9649    
0x49ce7a        
  11    TScript::compileScript  TScript.cpp     150     0x4b04d7        
  12    TScript::setScript      TScript.cpp     143     0x4b048e        
  13    dlgTriggerEditor::saveScript    dlgTriggerEditor.cpp    4282    
0x456ad9        
  14    dlgTriggerEditor::slot_saveScriptAfterEdit      dlgTriggerEditor.cpp    
4178    0x456799        
  15    dlgTriggerEditor::slot_save_edit        dlgTriggerEditor.cpp    6932    
0x46a642        
  16    dlgTriggerEditor::qt_static_metacall    moc_dlgTriggerEditor.cpp        
509     0x57ecd9        
  17    QMetaObject::activate   qobject.cpp     3479    0x4c94cd0       
  18    QMetaObject::activate   qobject.cpp     3354    0x4c94672       
  19    QAction::triggered      moc_qaction.cpp 356     0x11674669      
  20    QAction::activate       qaction.cpp     1175    0x11673c1e      
  ...   <More>                          

  
  code:

  -------------------------------------------------
  --         Put your Lua functions here.        --
  --                                             --
  -- Note that you can also use external Scripts --
  -------------------------------------------------
  function makeMap()
  id = 0
  for i=0,100 do
        for j=0, 100 do
                addRoom(id)
                --setRoomArea(id,0) --uncomment this and remove below call to 
avoid seg faults
                setRoomName(id, tostring(id))
                setRoomCoordinates(id, i, j, 0)
                setExit(id-1,id,1)
                setExit(id,id-1,2)
                setRoomArea(id,0)
                id = id+1       
        end
  end
  end

  function makeLabels()
        id=1
        for i=0,100 do
                for j=0, 100 do
                        --display(id)
                        x,y,z = getRoomCoordinates(id)
                        createMapLabel(0,tostring(id),x,y,z,0,255,0,0,0,0) 
                        id = id+1
                end
        end
  end

  --makeMap()
  --makeLabels()
  centerview(1)

  uncomment makeMap and it crashes. It fails when id is 1 as well, so it
  isn't because of the i-1 setExit bit. It's caused by mpRoomDB not
  being initialized because there is no area created. Even post
  creation, the room needs to be assigned to an area first before any
  calls to mpRoomDB are called, else it will seg fault. It seems like we
  need some 'void' area that has no name and is just an abyss for rooms
  waiting to be allocated to avoid breaking scripts.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mudlet/+bug/1226558/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mudlet-makers
Post to     : mudlet-makers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mudlet-makers
More help   : https://help.launchpad.net/ListHelp

Reply via email to