|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Tue Apr 27, 2010 9:54 pm
[3.16bpro/1.1 conv]newly created post-conv room graphics not drawn on map |
I didn't see any reference to this in my searches, but I almost swear this was mentioned before. At any rate, I want to be absolutely clear up front that the underlying room data as exposed by #LOCATION, #TELEPORT, #WALK, %room functions, and the Room Properties window appears to be correctly captured and applied. I also want to be clear that I'm not at all getting any error messages, so this is purely something I happened to notice and went "WTF?! now what's wrong?". The mapfile is one that has gone through both the 1.0 and 1.1 converter, as well as ReedN's cmud_map_doctor utility
1)after the conversion, a newly-created room will properly create and display the room square and the link/stub lines. Any %room functions you are applying to the room at this time will also properly display. The only thing wrong here is that the room square is completely unselectable, and because the menu options that depend on selectedness are working properly (move, move to zone, etc) this newly-created room is now stuck in place.
2)After the conversion, if you then close the session and reopen it (probably also if you just change mapfiles, but I didn't test that) the map window will now no longer display the post-conversion new rooms at all. The only thing that gets displayed are the link lines between the unaffected rooms and the affected rooms. These links will have the zone-connection link line, except that there's no zone caption. As far as I know the room is placed where it was originally created, but I think I need zmapper to see the X,Y values.
Is anyone else seeing this happen? |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Apr 27, 2010 10:08 pm |
Yes, I have already received this bug report so it's around here somewhere in this forum. The symptoms are exactly as you describe: initially the added rooms are not selectable and upon restart they are hidden. Looks like a field is not getting set correctly for new rooms because of something the map conversion still isn't doing right.
In any case, it's on the bug list. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Apr 29, 2010 7:13 am |
I need to collect a bit more information on this issue:
1) Does this also happen if you manually create a room on the map using the toolbar that appears in Map mode, even when disconnected from the MUD?
2) If not, does it happen if you take a CMUD 3.x *.DBM map file and then use the Map Conversion program to convert it to *.MDB and then back to *.DBM again? In other words, if you create a new map in 3.16 and then convert it to *.MDB and then back to *.DBM, do newly created rooms show this problem? And do the rooms need to be created via moving while connected, or does creating a room manually as in (1) also show the problem?
I'm trying to find a way to reproduce this with one of my own map files on a MUD where I already have a character. |
|
|
|
Palek Wanderer
Joined: 28 Sep 2005 Posts: 55
|
Posted: Thu Apr 29, 2010 5:55 pm |
I have noticed it most when creating through the toolbar option, and with rooms that were created by keypad off of a room that was created by toolbar, I could set the location marker to these rooms only by selecting with a drag box and using spreadsheet veiw.
Jamie |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Thu Apr 29, 2010 9:26 pm |
1)yes. As far as I can tell, it's global to all forms of new-room creation and doesn't matter what connection state you are in.
a)create a new session
b)do what you need to do to set up the mapper (as far as I can tell, my mapper package is still ok so I cheated and simply included this package versus writing a new one)
c)map a few rooms, use keyboard creation, place rooms via the drawing tools, use #MAKEROOM, etc.
d)close the session and convert the map
e)reopen session
f)add more rooms, notice how they seem to be properly created but cannot be selected
2)conversion from .dbm to .mdb and back does not change a thing. For whatever strange reason (only saw this happen once, and all other affected rooms do not have any exits), using the Room Properties to navigate the exits caused the link to convert from the zone-connection bitmap/shape to a regular link that appears to be a tad bit longer than normal (it's probably just an optical illusion since the room box is not there) |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Fri Apr 30, 2010 3:27 am |
I noticed a few minutes ago that the exit stubs--so long as the room itself is still visible (obviously, if the room is now invisible then the link lines went with it)--are still mouse selectable even when the room is not. So, if you notice that you ran into a wall and a mistake room was created you can still delete that exit that connects the mistake to the real rooms.
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Mondor Novice
Joined: 26 Nov 2008 Posts: 33
|
Posted: Tue May 04, 2010 4:42 pm |
I experience the same problem when I move one or more selected rooms to a different zone. Zugg and I exchanged a few emails (shotgun.slade@gmail.com).
If I created rooms in one zone and moved them to another zone in the same session, it works as expected. If I create rooms, end the session (and reboot CMUD), then start a new session and move the rooms in the subsequent session, the rooms are 'invisible' just like Matt describes. Once I exit CMUD and restart it again, the rooms are visible again. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed May 05, 2010 7:31 pm |
I am having trouble reproducing this from a new map.
Matt: In your steps above, in step a-c, what version of CMUD are you using to create the initial map file? I tried creating the map in v2.37 and then added rooms, then I closed the session and then opened the session using 3.16 and the map seemed to be converted fine.
I have looked at some map files people have sent me, and what is causing the problem is that the "Deleted" column in the database is getting a default value of True instead of False. But in the testing I have done with my maps here, either converting old maps or creating new maps it always makes this default value False and not True. So I'm not sure what map files have this default set incorrectly unless it was something done by the 1.0 map conversion program.
In any case, the underlying bug is that new rooms are not setting this column to False instead of using the database default value. So I can fix that for the next version and hopefully that will take care of it. |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Thu May 06, 2010 2:22 am |
Quote: |
I tried creating the map in v2.37 and then added rooms, then I closed the session and then opened the session using 3.16 and the map seemed to be converted fine.
|
All my test maps for this were originally created in 3.16b. I have a working-file for serious play, which has been around (and through all the converters) since ZMud. |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu May 06, 2010 5:03 pm |
So if you created the map in 3.16, then what are you doing in step d?
Quote: |
d)close the session and convert the map |
Are you running the external Map Convert and converting the map from CMUD to zMUD and then back again? Later in (2) you said that doing this conversion wasn't changing anything.
So are you saying that a map created originally in 3.16b will cause rooms to disappear just when you reopen CMUD again? I guess I'm now very confused by your procedure.
A *.dbm file created by 3.16b definitely has the "Deleted" column set to a default of False. So I'm still trying to figure out how this got changed on your system. |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Thu May 06, 2010 7:02 pm |
Quote: |
Are you running the external Map Convert and converting the map from CMUD to zMUD and then back again? Later in (2) you said that doing this conversion wasn't changing anything.
|
Yes, per your #2. For the original test, I was just converting an unconverted 3.16b map to the 3.16b format, much like how we could fix older maps when the 1.0 converter was released. My comment about it not changing anything was in reference to this original conversion. It didn't matter if I converted .dbm to .mdb and then back to .dbm, or if I simply converted from .dbm directly to .dbm--the result was the same.
d) is supposed to be a two-part step. Part 1 is to simply close the session and then reopen it prior to the conversion. If the problems weren't caused by the converter, they would then show up or at least be more obvious at this point. For example, after the conversion any rooms I'd create in the current session would still draw the room box and exit lines and the only thing that would mark this as a problem room is the fact that you can't select it with the mouse. If I then closed the session and reopened it, the room boxes and exit lines for these post-conversion rooms would simply not be drawn at all (except at the points where they connected to pre-conversion rooms). Part 2 would be the conversion itself.
Quote: |
So are you saying that a map created originally in 3.16b will cause rooms to disappear just when you reopen CMUD again? I guess I'm now very confused by your procedure.
|
Only the post-conversion rooms. And they would only disappear if they were created 1 or more sessions ago. If these rooms were created during the current session, the room boxes and exit lines would be created/updated properly and the only reason you'd know these were problem rooms is because you couldn't select them with the mouse.
In all cases, rooms created prior to the conversion would still exhibit zero problems after conversion (although now that I think about it, I didn't bother trying to move them to different zones and stuff so perhaps those things might render those rooms problematic as well). |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu May 06, 2010 7:49 pm |
Quote: |
I was just converting an unconverted 3.16b map to the 3.16b format |
OK, still confused. There isn't any such thing as "unconverted 3.16b". The only time CMUD does a conversion is from old *.MDB files.
So wait, are you saying that you are using the MapConvert program to "convert" from *.dbm directly to *.dbm again? That's not really what I would call "conversion" since the database formats are the same, but let me know if that is really what you are doing. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu May 06, 2010 7:52 pm |
Also, can you email me the "converted" map file that has the missing rooms so I can see if it's the same issue with the Deleted column? Email it to sales@zuggsoft.com.
|
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Fri May 07, 2010 1:27 am |
Quote: |
So wait, are you saying that you are using the MapConvert program to "convert" from *.dbm directly to *.dbm again? That's not really what I would call "conversion" since the database formats are the same, but let me know if that is really what you are doing.
|
Yeah, this is what I was doing. I used "convert" simply because MapConvert (or similar utility) was used on the mapfile.
EDIT: originally I was going to include my playing mapfile, but at 30mb I'm guessing it's too big (at any rate, my email provider timed me out). If you want it, instead of or in addition to the ones I sent you, I'll host it for you to grab later. |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri May 07, 2010 1:56 am |
Got the file, thanks Matt. Looks like it's an issue with the DBM->DBM conversion in MapConvert. The issue in MDB->DBM is already fixed in CMUD for the next version. It's definitely the "Deleted" column. In the "pre" file, the database has the column defined as "Deleted INTEGER DEFAULT False", but in the "post" converted file, the column has been changed to "Deleted INTEGER DEFAULT True". So it looks like a problem with trying to read the proper default values from the DBM file.
This probably also effects the DBM->MDB conversion process as well.
I'll try to track down the bug tomorrow. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri May 07, 2010 5:10 pm |
Yep, found the bug:
Code: |
T := Field.DefVal;
if (T = '') or (T = '0') then T := 'FALSE' else T := 'TRUE'; |
Works fine for converting from ADODB where the default value for boolean fields is 0 or 1. But when converting an existing SQLite database, the default values are "true" or "false". And in the above line, if T is already set to "false", it was getting reset to "true". Stupid bug. |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Sat May 08, 2010 6:53 am |
Bleh, ran out of time to look at this, but I'm getting indications that maybe this one's found a new home or managed to call in reinforcements before getting nuked. The testfiles I gave you seem to have properly reverted back to their proper ways (although weirdly it took CMud a couple tries to show it), but the big honking monster that is my aardwolf map didn't (or, at least, the big area that I knew these problem rooms to be in didn't).
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sat May 08, 2010 5:35 pm |
The new version will not fix any map file that is still corrupted from the previous versions. As long as the "Deleted" column still has a default of "True" there is going to be problems. And you might have room records that have the Deleted field set to false.
Using SQLite Admin program you can probably go into your map file and reset all of the deleted columns back to True. But getting the default value of the column to change would be trickier. You would need to remove the Deleted column and then re-add it as INTEGER DEFAULT FALSE. I know SQLite can add columns in v3.x, but I'm not sure about deleting columns. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Sat May 08, 2010 6:10 pm |
So there is no fix for large maps that got corrupted?
I really don't want to have to remap the whole mud over... |
|
_________________ Discord: Shalimarwildcat |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Sun May 09, 2010 5:39 am |
Quote: |
Using SQLite Admin program you can probably go into your map file and reset all of the deleted columns back to True. But getting the default value of the column to change would be trickier. You would need to remove the Deleted column and then re-add it as INTEGER DEFAULT FALSE. I know SQLite can add columns in v3.x, but I'm not sure about deleting columns.
|
Why integer, as opposed to the Boolean it's apparently set as? Similarly, isn't "True" = "I'm deleted"? We don't want all our rooms to be deleted, we want those wrongly-set rooms undeleted.
Quote: |
So there is no fix for large maps that got corrupted?
|
Depends on how badly it was corrupted. If it's simply a matter of invisible rooms, you are most likely only affected by the above issue with the Deleted field. Using Navicat Lite, you can easily change this info though you might have to edit each record one-by-one (I haven't found a way to apply a value to multiple records in one action):
1)open up a connection to your .dbm file
2)click on Tables and select the ObjectTbl table
NOTE:if you are curious as to what the Default values are for the table, you will want to click on the View|Object Information menu and navigate to the DDL tab to see the SQL statement. The default values don't properly show where they should.
3)click on the Design Table button to open the Table Editor
4)scroll down and select the Deleted field
5)in the dropdown box where it says Default, type in FALSE
6)close the Editor window to save
7)click the Open Table button to open the Row Editor window
8)scroll over to the Deleted tab, and change any of the Y values to N
NOTE:the list of records is divided into "pages" of 1000 records. Make sure you look at all the pages, until you are reasonably sure you got all your rooms fixed.
EDIT: YAY! MY MAP'S FIXED! One thing to note, however, is that Navicat Lite seems to be making the file larger (in my case, another 13k). Not sure if that's going to be a bad thing or not, but it doesn't seem to be affecting CMud in the slightest. |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon May 10, 2010 4:43 pm |
Quote: |
Why integer, as opposed to the Boolean it's apparently set as? |
Sorry, that was a typo on my part it should be BOOLEAN and not Integer.
Quote: |
So there is no fix for large maps that got corrupted?
I really don't want to have to remap the whole mud over... |
That is why I tell you to make a BACKUP of your files before each Beta update. So you should have *lots* of copies of your map files. I never guarantee any sort of data compatibility between beta versions, so you should *always* have backups of your MUD files. |
|
|
|
|
|