• Welcome to Freedom Reborn Archive.
 

tommyboy's Map Making Misadventures and Conundrums

Started by tommyboy, July 21, 2008, 05:43:18 PM

Previous topic - Next topic
|

tommyboy

In which I ask questions of the audience in an attempt to speed up the production of new maps. and offer random observations, thoughts and discoveries.

1. When placing buildings, streetlamps etc in the Editor, is there no way to speed up the process? No way to grab a bunch of stuff and copy it all?
And before anyone says, "just suck it up, there aren't that many buildings", heres the monster I'm working on:

So far I hand added 460 buildings, which is about one on every block. Assuming a modest 6 per block and you are maybe looking at 3000 buildings to hand place. And then streetlamps, bins, phone boxes etc etc etc.
Now, its almost certainly Too Big, and will likely kill any PC that tries to display it once everything is in place, but I wanted a Really, Really Big Map. And it runs OK on my PC with the 460 buildings in, so I'm pressing on. I can, after all, delete stuff if it is too big.
I'm experimenting with using X-ref in 3dsmax, as at least there I can select multiple objects, but I have a feeling that's not going to work.
What I want is to be able to set up 5 or so blocks of buildings and lamps, then copy them over and over to fill the map, making adjustments manually to avoid too much repetition.
So, anyone know of any way round this?

2. As has been discussed, you cannot have walkways, bridges etc. The engine just wont let you. But.
It occurs to me that it may be possible to Fake it a little. In on of my maps I have a wall with arched doorways. By not giving these a flag (ie metal, unpassable etc) I make them Walk-through-able in game. It seems to me that if I then place other pillars/short walls right next to the supposedly 'solid' parts, and tag these with 'unpassable', I get what seems to be an arched gap in the wall. Now imagine we thicken the arched wall, so it now starts to look like theres a pathway on top. By moving the 'unpassably' tagged walls inside the arched ones we get a series of stepping stones a character can hop across on top, and walk through the arches underneath. I'll try to make this happen as a proof of concept. Sure, it'll look a little strange to see characters hopping and jumping on certain bits of walkways and bridges, but may be worth it.
The other thing that occurs is if a bridge or walkway is built in Max, with a boundingbox that follows its shape (like my elevated railway tracks), you can place those in the map wherever you want, without having to worry about terrain flags. Characters can walk on the top, and underneath, without hinderance.This is probably a better bet. Again, Proof of concept meshing to follow as/when time allows.

3. When maps get Really Really Big. The FF(v3r) engine has a 'cut-off' point that blacks stuff out, so for instance you cannot see a skypshere on the far side of the map above until you get within a certain distance. Anyone know anything about this, or any possible workarounds?

Carravaggio

3000?! Sweet Christmas!

I can offer no advice, only my admiration and enthusiasm for this map, and your other mapping projects!

The_Baroness

Would give my opinion but.... wow... just wow...

hope it wont kill your pc when is full of buildings... but i would really love to play on a big map like that

ow_tiobe_sb

In 3ds max, could you Group the city block prototype (i.e., the X-referenced buildings in that block) and then use the Array tool (with offset and rotation values in place to create some variety of layout) to create a matrix of, say, 5-10 city blocks at a time?  Then you could Ungroup these city blocks, a task which might also prove arduous, but at least you aren't placing each individual building, one at a time.

I've never experimented with setting up levels in 3ds max, so I could simply be dreaming in the wrong haystack.  It sounds to me as if your layout difficulties might best be solved by someone who could write a small application that would accept a terrain mesh value and a few mesh variables (i.e., the buildings, trash receptacles, lampposts, etc.) and then randomly populate a city block matrix that could be exported to a level.txt.  Again, I'm dreaming...

I wish I could be of more assistance.

ow_tiobe_sb
Phantom Bunburyist and Fop o' th' Morning

Lunarman

Very very nice.

Yes I expect there is  way to lay out your map faster than this.

I think it would take patience and coding skills at first but it should be doable pretty quick once you've got the code set.

If you go find a level layout file and adjust it slightly to layout one block automatically as you want it.
So
library\area_specific\ff_base\terrain\07_briefing\07_briefing_terrain.nif [0,0,0] (quat 0 0 0 1)
library\area_specific\frozen_enterprise\small_objects\wire_fence\wire_fence.nif [-438.691,95.6147,0.0303469] (quat 0 0 -0.707107 0.707107)
library\area_specific\frozen_enterprise\small_objects\wire_fence\wire_fence.nif [-438.691,215.583,0.0303469] (quat 0 0 -0.707107 0.707107)
library\area_specific\frozen_enterprise\small_objects\wire_fence\wire_fence.nif [-438.691,-24.3539,0.0303469] (quat 0 0 -0.707107 0.707107)
library\area_specific\frozen_enterprise\small_objects\wire_fence\wire_fence.nif [-438.691,-144.322,0.0303469] (quat 0 0 -0.707107 0.707107)
library\area_specific\frozen_enterprise\small_objects\wire_fence\wire_fence.nif [-438.691,-264.291,0.0303469] (quat 0 0 -0.707107 0.707107)
library\area_specific\frozen_enterprise\small_objects\wire_fence\wire_fence.nif [-438.691,-384.26,0.0303469] (quat 0 0 -0.707107 0.707107)

This is the first few lines of a typical layout file. If you write one of these so it places the objects you want in the first block then you could either write an algorithm or copy it by hand and make adjustments to alter the placement of the objects. Do you see what i mean? I'm presuming of course that the blocks are all the same distance apart, it looks like they are.

So. Using the FFediter layout one block as you want it. Go into the editor and read off the position values and paths; enter these into the layout.txt file. Then go to max and find the distance between one repeatable block and the next, both horizontally and vertically. You could then write some code that alters the initial text on the layout file and changes the coords for each object by a suitable amount (e.g, copies it 3 blocks right, 4 blocks right, 5 blocks right).

You'd then have a huge layout file with all the objects in the right places (hopefully) and you could load it up in FFedit. It could work, dunno if it would be less effort though.

Sorry I think I may have said the same thing several times there.

Lunarman


p.s. good luck it looks awesome.

GogglesPizanno

Quote1. When placing buildings, streetlamps etc in the Editor, is there no way to speed up the process? No way to grab a bunch of stuff and copy it all?

like Lunarman said, if you exported the layout file with just a small block section done, and could work out the math (provided your "city blocks" were unified in size and spacing) you could then just cut and paste sections in the layout file and adjust the x/y coordinates. Its still a bit of work to get the math and measurements right, but you are just messing with text values and can rapidly cut and paste once you get it... Ive done similar stuff and it worked reasonably well.

Quote
2. It occurs to me that it may be possible to Fake it a little. In on of my maps I have a wall with arched doorways. By not giving these a flag (ie metal, unpassable etc) I make them Walk-through-able in game. It seems to me that if I then place other pillars/short walls right next to the supposedly 'solid' parts, and tag these with 'unpassable', I get what seems to be an arched gap in the wall. Now imagine we thicken the arched wall, so it now starts to look like theres a pathway on top. By moving the 'unpassably' tagged walls inside the arched ones we get a series of stepping stones a character can hop across on top, and walk through the arches underneath. I'll try to make this happen as a proof of concept. Sure, it'll look a little strange to see characters hopping and jumping on certain bits of walkways and bridges, but may be worth it.
The other thing that occurs is if a bridge or walkway is built in Max, with a bounding box that follows its shape (like my elevated railway tracks), you can place those in the map wherever you want, without having to worry about terrain flags. Characters can walk on the top, and underneath, without hindrance.This is probably a better bet. Again, Proof of concept meshing to follow as/when time allows.

While I would love to see this work and I'd love to see you figure out a way to do it, To the best of my knowledge this wont work. Ive tried every trick I can think of to "fake" this stuff as well and I have had no luck. As was explained to me.... once all the objects are placed on a map, the path-finding is basically draped over the map like a blanket, so in the example of the railway tracks, if there is a part of the object that covers the ground below, it will be impassable as the "upper" level becomes the ground as far as character movement is concerned.

But Hey, Ive been wrong in the past, and you have come up with some cool 3d Tricks, so my fingers are crossed for you...

tommyboy

Darn. Goggles is right. I had never noticed before, but characters don't go under the elevated train tracks. Dunno how I missed that..
So idea #2 is out, that leaves the 'jumping' bridge idea, which even before execution sounds inelegant. I'll still experiment with it at some point.

Thanks for the replies about the Editor placing problem. I think that you are on the right track with the copy/paste text file approach, so I'll see if I can try that one. Fortunately the blocks are all square and evenly spaced. Having a version with one building already placed in every block may well help with that, as it means that I already have one co-ordinate worked out. Still a slightly daunting task, but less so than the manual placement nightmare scenario.
And who knows, it could lead to the implementation of a sort of 'auto-populate' feature for maps.

tommyboy

Woohoo!
Following your sensible suggestions, I took the level.txt from the mp_city_small file (from which template the whole map derives), copied it into my megacity level.txt and had the centre of the map populated by cars and buildings and whatnot.
I then copied and pasted four streetlamps within the level.txt, altered the values manually, and now have streetlamps in the right place further along the street.
Now I just have to do that a million times!

GogglesPizanno

Once you get the math worked out it would probably be a pretty simple thing to write a python script to loop through and automatically fill in the values.

cmdrkoenig67

Tom...A while back, I tried to help Valandar with a giant map project of his(by placing buildings and such on it), but the map proved far too big (and it had nowhere the amount of stuff this one does) and wouldn't be usable/accessible in the Rumble/Danger Room. 

Yours may work, but I don't even think Val's map was as big as this one (and the one he made was huge).

This probably wasn't helpful, but I just thought I'd mention it.

Dana

tommyboy

Quote from: cmdrkoenig67 on July 22, 2008, 08:30:47 AM
Tom...A while back, I tried to help Valandar with a giant map project of his(by placing buildings and such on it), but the map proved far too big (and it had nowhere the amount of stuff this one does) and wouldn't be usable/accessible in the Rumble/Danger Room. 

Yours may work, but I don't even think Val's map was as big as this one (and the one he made was huge).

This probably wasn't helpful, but I just thought I'd mention it.

Dana
Dana,
I'm not sure quite what you are saying the problem was with Val's map. When you say it wouldn't be usable/accessible in the danger room, did it crash the game, not load, prove impractical because it's size confounded the AI?
Because mine runs both as a mission and as a danger room level (only in FFv3R so far, havent tried in ff yet), though obviously it's relatively sparsely populated so far. And should it prove too big, I will simply trim bits off till it does work.

Goggles, I'll see if I can get a number for the shifts in x and y co-ordinates between blocks. Then it would be up to someone with some shreds of intelligence and programming and mathematical skill to write any putative programme, since that would most likely be far beyond my meager abilities.

crimsonquill

Tommy,

If your huge map doesn't work out as a whole then maybe you can divide it up into districts.. especially if you do a Marvel New York City version with the landmarks and all. You probably already thought of that but I wanted to put my 2 cents in. I so do look forward to having a rumble room with Fantastic Four HQ, Dr. Strange's home, and everything else scattered among the cityscape.

And great work on what you have tackled thus far on the project... I totally had a  :o look on my face upon seeing that map you unveiled thus far.

- CrimsonQuill

Boalt92

It's probably too late for this but....

In terms adding buildings:

1) throw in a few parks/residential blocks; it'll reduce the number of buildings you have to place.

2) I would start with an existing map, preferably square, and use it's layout as a map "grid".  Since you know the dimensions, you can simply add the appropriate values to "x" or "y" to generate coordinates for "grids" above, below and diagonal to your original.  You can even write a simple excel spreadsheet to generate the values for you.

for example:
1. Map Grid NW at coords. x=0, y=0
2. Map Grid NE starts at coords x=(width of NW), y=0
3. Map Grid SW starts at coords x=0, y=(length of NW)
4. Map Grid DE starts at coords x=(width of NW), y=(length of NW)

This way, the streets are already laid out, you just need to adjust the coordinates and then fine tune to your needs.

Keep posting....a large map like this could turn into a "virtual freeroam" in the rumble room.

B92

tommyboy

OK, the block to block distance is 1280. Adding this to a copy of all the buildings in level.txt got me a set of duplicate buildings one block over.
Now the map has a road junction at 0,0 and there are seven more junctions between it and the edge of the map in any direction (not the diagonal ones, only in x and y axes, obviously).

So, a special prize of errrr....nothing, to anyone who can write a script that takes:
[spoiler]library\terrain\mega_city\megacity.NIF [0,0,0] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_11\building_11.nif [-259.997,539.981,-0.00332642] (quat 0 0

0.707107 0.707107)
library\area_specific\city\buildings\standard\building_11\building_11.nif [-219.997,219.981,-0.00332642] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_11\building_11.nif [220.003,-220.018,-0.00331879] (quat 0 0 1

0)
library\area_specific\city\buildings\standard\building_11\building_11.nif [260.003,-540.018,-0.00331879] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\buildings\standard\building_07\building_07.nif [-419.997,499.981,-0.00332642] (quat 0 0 1

0)
library\area_specific\city\buildings\standard\building_07\building_07.nif [420.003,-500.018,-0.00331879] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_07\building_07.nif [420.003,-500.018,-0.00331879] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_09\building_09.nif [-479.997,239.981,-0.00332642] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_09\building_09.nif [480.003,-240.018,-0.00331879] (quat 0 0 1

0)
library\area_specific\city\buildings\standard\building_06\building_06.nif [-239.997,379.981,-0.00332642] (quat 0 0

0.707107 0.707107)
library\area_specific\city\buildings\standard\building_06\building_06.nif [240.003,-380.018,-0.00331879] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\buildings\standard\building_04\building_04.nif [-579.997,539.981,-0.00332642] (quat 0 0 1

0)
library\area_specific\city\buildings\standard\building_04\building_04.nif [580.003,-540.018,-0.00331879] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_15\building_15.nif [-559.997,-480.019,-0.00278473] (quat 0 0

-1.19209e-007 1)
library\area_specific\city\buildings\standard\building_15\building_15.nif [280.003,519.982,0.00222778] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\buildings\standard\building_03\building_03.nif [-439.997,-540.019,-0.00278473] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_03\building_03.nif [220.003,399.982,0.00222778] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\buildings\standard\building_05\building_05.nif [-359.997,-540.019,-0.00278473] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_05\building_05.nif [220.003,319.982,0.00222778] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\buildings\standard\building_12\building_12.nif [-239.997,-540.019,-0.00278473] (quat 0 0 0

1)
library\area_specific\city\buildings\standard\building_12\building_12.nif [220.003,199.982,0.00222778] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\buildings\standard\building_01\building_01.nif [-519.996,-240.019,-0.00278473] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\buildings\standard\building_01\building_01.nif [520.003,479.982,0.00222778] (quat 0 0 1

0)
library\area_specific\city\buildings\standard\building_10\building_10.nif [-259.997,-280.019,-0.00278473] (quat 0 0 1

0)
library\area_specific\city\buildings\standard\building_10\building_10.nif [480.003,219.982,0.00222778] (quat 0 0

0.707107 0.707107)
library\area_specific\city\street_objects\bin\bin.nif [-536.24,470.767,0.10054] (quat 0 0 0.382683 0.92388)
library\area_specific\city\street_objects\vent_02\vent_02.nif [-256.724,295.207,179.997] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [-559.504,110.487,40.1625] (quat 0 0 0

1)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [-377.997,428.981,139.997] (quat 0 0 0.707107

0.707107)
library\area_specific\city\street_objects\bin\bin.nif [-285.566,141.918,0.10054] (quat 0 0 0.382683 0.92388)
library\area_specific\city\street_objects\bin\bin.nif [-285.566,154.312,0.10054] (quat 0 0 -0.5 0.866025)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [-400.058,110.487,40.1625] (quat 0 0 0

1)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-296.959,304.651,0.10054] (quat 0 0 0.130526 0.991445)
library\area_specific\city\street_objects\signs\sign_hotel_02\sign_hotel_02.nif [-349.954,122.436,94.6251] (quat 0 0 0

1)
library\area_specific\city\street_objects\signs\sign_burger_world\sign_burger_world.nif [-159.919,359.979,63.0708] (quat

0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fire_hidrant\fire_hydrant.nif [-106.997,361.981,-0.00332642] (quat 0 0 0 1)
library\area_specific\city\street_objects\phone_booth\phone_booth.nif [-361.779,74.9233,-0.00332642] (quat 0 0 0.707107

0.707107)
library\area_specific\city\street_objects\crate_02\crate_02.nif [-348.997,277.981,-0.00332642] (quat 0 0 0.130526 0.991445)
library\area_specific\city\street_objects\bin\bin.nif [-348.696,465.047,0.10054] (quat 0 0 0.991445 0.130526)
library\area_specific\city\street_objects\crate_02\crate_02.nif [-350.997,257.981,-0.00332642] (quat 0 0 0 1)
library\area_specific\city\street_objects\awnings\awning_long\awning_long.nif [-478.393,97.7343,0.10054] (quat 0 0 0

1)
library\area_specific\city\street_objects\bin\bin.nif [-550.198,472.441,0.10054] (quat 0 0 1 0)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [-127.897,87.3807,0.196671] (quat 0 0 0

1)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-549.997,374.981,-0.00332642] (quat 0 0 -0.130526 0.991445)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-521.997,375.981,-0.00332642] (quat 0 0 0.382683 0.92388)
library\area_specific\city\street_objects\street_bin\street_bin.nif [-444.617,67.9726,0.10054] (quat 0 0 0 1)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [-567.997,326.981,179.997] (quat 0 0 0.707107

0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-359.783,176.04,21.9967] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-359.783,191.067,21.9967] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\water_tower\water_tower.nif [-295.394,345.498,179.997] (quat 0 0 1 0)
library\area_specific\city\street_objects\vent_02\vent_02.nif [-225.718,-406.531,179.997] (quat 0 0 1 1.59792e-007)
library\area_specific\city\street_objects\vent_02\vent_02.nif [-193.999,-406.571,179.997] (quat 0 0 1 1.59792e-007)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-399.788,-179.565,21.9972] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\signs\sign_tobacco\sign_tobacco.nif [-520.743,-118.028,50.2405] (quat 0 0 1

0)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-422.307,-463.893,0.100281] (quat 0 0 -0.608761 0.793353)
library\area_specific\city\street_objects\awnings\awning_square\awning_square.nif [-607.171,-110.02,24.9748] (quat

0 0 1 0)
library\area_specific\city\street_objects\dumpster\dumpster.nif [-440.644,-378.455,-0.358292] (quat 0 0 0.998135

-0.0610484)
library\area_specific\city\street_objects\bilboards\billboard_decal_01\billboard_decal_01.nif [-159.036,-197.643,92.1597]

(quat 0 0 1 0)
library\area_specific\city\street_objects\bin\bin.nif [-401.587,-366.94,0.100281] (quat 0 0 1 0)
library\area_specific\city\street_objects\crate_02\crate_02.nif [-454.189,-466.25,0.100281] (quat 0 0 -0.793353 0.608761)
library\area_specific\city\street_objects\water_tower\water_tower.nif [-191.876,-509.913,139.997] (quat 0 0 1 0)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-170.031,-479.518,21.9972] (quat 0 0 1 0)
library\area_specific\city\street_objects\awnings\awning_square\awning_square.nif [-428.017,-110.02,24.9748] (quat

0 0 1 0)
library\area_specific\city\street_objects\awnings\awning_square\awning_square.nif [-486.328,-110.02,24.9748] (quat

0 0 1 0)
library\area_specific\city\street_objects\street_bin\street_bin.nif [-353.395,-69.1858,0.100281] (quat 0 0 1 0)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [-128.097,-87.4192,0.197212] (quat 0 0 1

0)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-106.697,-237.819,-0.00278473] (quat

0 0 0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-280.097,-66.019,-0.00278473] (quat

0 0 1 0)
library\area_specific\city\street_objects\post_box\post_box.nif [-109.997,-299.637,-0.00278473] (quat 0 0 1 0)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-106.697,-479.819,-0.00278473] (quat

0 0 0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-521.396,-66.019,-0.00278473] (quat

0 0 1 0)
library\area_specific\city\street_objects\vent_02\vent_02.nif [256.729,-295.244,179.997] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [559.51,-110.524,40.1625] (quat 0 0 1

0)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [378.003,-429.018,139.997] (quat 0 0 -0.707107

0.707107)
library\area_specific\city\street_objects\bin\bin.nif [285.572,-141.955,0.100548] (quat 0 0 0.92388 -0.382683)
library\area_specific\city\street_objects\bin\bin.nif [285.572,-154.349,0.100548] (quat 0 0 0.866025 0.5)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [400.064,-110.524,40.1625] (quat 0 0 1

0)
library\area_specific\city\street_objects\crate_01\crate_01.nif [296.965,-304.688,0.100548] (quat 0 0 0.991445 -0.130526)
library\area_specific\city\street_objects\signs\sign_hotel_02\sign_hotel_02.nif [349.959,-122.473,94.6251] (quat 0 0 1

0)
library\area_specific\city\street_objects\signs\sign_burger_world\sign_burger_world.nif [159.924,-360.016,63.0708] (quat

0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\fire_hidrant\fire_hydrant.nif [107.003,-362.018,-0.00331879] (quat 0 0 1 0)
library\area_specific\city\street_objects\phone_booth\phone_booth.nif [361.784,-74.9603,-0.00331879] (quat 0 0 -0.707107

0.707107)
library\area_specific\city\street_objects\crate_02\crate_02.nif [349.003,-278.018,-0.00331879] (quat 0 0 0.991445 -0.130526)
library\area_specific\city\street_objects\bin\bin.nif [348.702,-465.084,0.100548] (quat 0 0 -0.130526 0.991445)
library\area_specific\city\street_objects\crate_02\crate_02.nif [351.003,-258.018,-0.00331879] (quat 0 0 1 0)
library\area_specific\city\street_objects\bin\bin.nif [536.246,-470.804,0.100548] (quat 0 0 0.92388 -0.382683)
library\area_specific\city\street_objects\awnings\awning_long\awning_long.nif [478.399,-97.7713,0.100548] (quat 0 0 1

0)
library\area_specific\city\street_objects\bin\bin.nif [550.204,-472.478,0.100548] (quat 0 0 0 1)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [127.903,-87.4177,0.196678] (quat 0 0 1

0)
library\area_specific\city\street_objects\crate_01\crate_01.nif [550.003,-375.018,-0.00331879] (quat 0 0 0.991445 0.130526)
library\area_specific\city\street_objects\crate_01\crate_01.nif [522.003,-376.018,-0.00331879] (quat 0 0 0.92388 -0.382683)
library\area_specific\city\street_objects\street_bin\street_bin.nif [444.623,-68.0096,0.100548] (quat 0 0 1 0)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [568.003,-327.018,179.997] (quat 0 0 -0.707107

0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [359.789,-176.077,21.9967] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [359.789,-191.104,21.9967] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\water_tower\water_tower.nif [295.399,-345.535,179.997] (quat 0 0 0 1)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [280.103,-69.095,-0.00331879] (quat

0 0 1 -2.10734e-007)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [521.403,-69.095,-0.00331879] (quat

0 0 1 -2.10734e-007)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [106.703,-240.218,-0.00331879] (quat

0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [106.703,-482.218,-0.00331879] (quat

0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\crate_02\crate_02.nif [293.771,414.174,0.105293] (quat 0 0 0.991445 0.130526)
library\area_specific\city\street_objects\bin\bin.nif [393.081,361.572,0.105293] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [580.457,359.774,22.0022] (quat 0 0 0 1)
library\area_specific\city\street_objects\crate_01\crate_01.nif [296.129,382.293,0.105293] (quat 0 0 0.991445 -0.130526)
library\area_specific\city\street_objects\dumpster\dumpster.nif [381.567,400.629,-0.353279] (quat 0 0 0.748956 0.66262)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [150.552,359.036,40.1717] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\street_objects\vent_02\vent_02.nif [353.491,185.704,180.002] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [150.552,517.632,40.1717] (quat 0 0

-0.707107 0.707107)
library\area_specific\city\street_objects\vent_02\vent_02.nif [353.45,153.985,180.002] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\bilboards\billboard_decal_01\billboard_decal_01.nif [562.379,119.021,92.1647]

(quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\water_tower\water_tower.nif [250.109,151.862,140.002] (quat 0 0 0.707107

0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [280.504,130.016,22.0022] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [128.202,88.0821,0.202225] (quat 0 0

0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [522.203,66.6819,0.00222778] (quat

0 0 0 1)
library\area_specific\city\street_objects\post_box\post_box.nif [460.384,69.9819,0.00222778] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [109.08,481.382,0.00222778] (quat

0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [109.08,240.082,0.00222778] (quat

0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [280.203,66.6819,0.00222778] (quat

0 0 0 1)
library\vehicles\car_01\car_01.nif [-74.4914,488.271,0] (quat 0 0 0 1)
library\vehicles\car_02\car_02.nif [33.6918,-23.7157,0] (quat 0 0 0.258819 0.965926)
library\vehicles\taxi\taxi.nif [43.0475,52.0736,0] (quat 0 0 0.965926 0.258819)
library\vehicles\police\police_car.nif [-32.4996,-78.0654,0] (quat 0 0 0.258819 0.965926)
library\vehicles\taxi\taxi.nif [205.173,31.7001,0] (quat 0 0 0.707107 0.707107)
library\vehicles\taxi\taxi.nif [-582.633,-31.6636,0] (quat 0 0 0.707107 0.707107)
library\vehicles\police\police_car.nif [-7.86447,106.051,0] (quat 0 0 -0.382683 0.92388)
library\vehicles\car_01\car_01.nif [72.4873,-411.401,0] (quat 0 0 1 0)
library\area_specific\city\street_objects\paper_01\start.nif [461.92,-59.3046,21.2551] (quat 0 0 0.608761 0.793353)
library\area_specific\city\street_objects\pigeons2\pigeons2.nif [-141.827,-114.615,0] (quat 0 0 0.354291 0.935135)
library\area_specific\city\street_objects\rat_01\rat_01.nif [-490.008,491.778,2.28882e-005] (quat 0 0 0.766044 0.642788)
[/spoiler]

and gets it to add 1280, and also to subtract 1280 to the x and y co-ordinates above.
I should also add that the buildings above only cover 1/4 of the block that they are on, so we may also need to copy/paste/add 640 versions in each direction. I'll test that now and post back to confirm/deny.

Meanwhile, heres some previews. An above shot showing the centre junction(where all the yellow cabs are), the original mp_city_small buildings, my copied versions either side, and some of the 400 odd buildings I placed by hand in the editor. Note the darkness at the very top is where the engine gives up if you pull the camera back further (WARNING, LARGE IMAGE):
[spoiler][/spoiler]

And heres a street level shot, with hand-placed buildings. Note that due to 'pop-up' you can only see five buildings on the right, even though there are fourteen along that road in total. The pop-up could be a bit of a downer in that you wont be able to see whats happening more than about 6-7 blocks distant, but I have no way round it for now.
[spoiler][/spoiler]



tommyboy

IPS:
For now, I'm going with FF for this map, though if the script thing comes together I have no objections to an FFv3r version.
And may just make an FFv3r one even if the script thing cannot or will not be done. You are right about the architecture of v3r>ff, but since people still use FF, and I know of at least one Modder still Modding for it, so I stubbornly try to cover all the bases. But this map started out in one of my FFv3R mods, using the ffv3r editor, and only got checked in FF tonight,  and changing the level.txt to use ffv3r buildings instead of ff ones might be a simple find/replace order in a word processor, so believe me, it will get a sparkly FFv3R version if I can.


Boalt:
Yes, I hope to add a park or three. I actually have another megamap based on the longer city blocks, and that has parks in it. If I ever get this one to work, that ones next. For now my main concern is just to populate the map, then add variety to the blocks afterwards, manually.

tommyboy

Ooooooookaaay...
it seems that in either FF or v3r the game needs 'templates.txt' in the directory of every object, vehicle and building or else they dont work right. You can go and point the editor to the correct template manually, but with the number of buildings, streetlamps etc in this map, that would drive me insane, and you have to do it for each and every impobj on the map.
So, public appeal time. Has anyone got the templates.txt for FFv3r? I found a thread where Boalt referred to a templates.ff file which I dont have and have never seen. If anyone does have it, or knows where to find it, let me know please.
I know there are template files for the old ff stuff that got transferred into v3r via Ren's mappack, and I could use those, but v3r has the irritating habit of naming things differently from ff, so even this would be problematic.

My other issue is the humongous, colossal, gigantic, quite big size of the mission.mg file in 'missions/megacity'. So far its 88Mb. And I think it may get bigger as I add more stuff. Clearly this is Not Good. Even my moonscape mission.mg is 25Mb, so clearly Big Maps come with a cost, and right here's where you start payin for it. FAAAME!


GogglesPizanno

You get points just for the Fame joke....

I know there is a templates.ff file... I have seen it. I'll look when I get home.
Also for FF my Map pack has template files for all the objects as well... OR if you have FF installed, you could just use the templates.ff file from there as well... that's where i got em from.

tommyboy

Ahhh... found templates.ff
Though why Agent Ransack couldn't is beyond me.
For anyone else struggling to find it, is in the Data directory in both games.

Carravaggio

I have a terabyte of HDD space, big maps are ok with me :)

Boalt92

Regarding templates.....

I've found several "generic" templates, particularly with the buildings that could potentially give you problems.  Basically, there is only one template file to cover 2-3 types of buildings.

For example, the template.txt file for standard buildings 1, 4, 7, 11, 14 all say pat_bldg_orange; for both light and "dark" versions of the model.

There are several others (I can't name them all now).  They don't seem to affect they layout files, however, unless you manually adjust the building's location/attitude/pitch/etc, which causes the building to revert to the template version.  Check it with an existing map and you'll see what I mean.

At any rate, good luck with this...we'll be watching (Mwuhahahaha!)

B92

tommyboy

Oh sweet baby jebus, noooooo.
You'd be forgiven for thinking that those city block pictured above are square, right?
And that if by adding 1280 to the co-ordinates on one axis of a copy of the buildings gives you precisely placed buildings that you could add 1280 to the co-ordinates on the other axis and the same would be true on that axis?
Noooooo....apparently they aren't square. Somehow they are some weird oblong because the fourteen gosh-diddly-darned blocks I just painstakingly spent three hours typing in to the level.txt dont line up anywhere near the terrain.
I know, I should have just tested one building first before typing in all the buildings on fourteen blocks.
If this board allowed swearing I'd make an angry, drunken, docker with tourettes blush right now.

Venting over, back to the mind numbing entry of numbers for me..

GogglesPizanno


stumpy

Quote from: tommyboy on July 23, 2008, 12:24:32 PMVenting over, back to the mind numbing entry of numbers for me..

Wish I had seen this before. Take a break for an hour or so and maybe I can write a little python to take the objects you have in the post above (or any file you specify) and copy them uniformly in X and Y.

tommyboy

Quote from: stumpy on July 23, 2008, 01:23:39 PM
Quote from: tommyboy on July 23, 2008, 12:24:32 PMVenting over, back to the mind numbing entry of numbers for me..

Wish I had seen this before. Take a break for an hour or so and maybe I can write a little python to take the objects you have in the post above (or any file you specify) and copy them uniformly in X and Y.

It's +1280 on one axis, and +1200 on the other, if that helps.
So:
[-219.997,219.981,-0.00332642]
becomes:
[-1499.997,219.981,-0.00332642] for the next block along,
and:
[-1499.997,1419.981,-0.00332642] for the next one up or down from that. And so on, until you can't bear it anymore...

I've actually got a sort of system going, where I work out the co-ordinates in a spreadsheet, then use find/replace to enter the new ones in a copied block of text. I confidently anticipate finishing the process 100 years after I am dead.

So yes, please to a script to do it. I'd write one myself if I weren't an olympic level dullard.

stumpy

Okay, here's my first pass at it. Hopefully this isn't too hard to follow.

Basically,
1. Open your python editor and save the code below as TommyMapDup.py.

2. Next, change the constants at the top of the file to fit your setup.

The TEMPLATE_FILE is your template for the layout, the one as above with the map at the top and no copied blocks yet. I would keep a separate copy of this from the output file so it doesn't get overwritten. That way, if needed, you can make changes to one block and then regenerate the rest of the blocks.

The OUTPUT_FILE is the layout file that will be generated. The next constants are the limits for block duplication on the map (could be the map extents themselves if your blocks go to the edges of the map). The DELTA_X and DELTA_Y are spatial frequencies of the blocks. From your last post, I've set them to 1280 and 1200, respectively.

I have it so the the code reads from a layout file like the one posted above by your or Lunarman (forget which one I looked at). It assumes the top line is the map NIF and the rest are all objects. No blank lines (though I could change that if it matters).

3. Then run the code. The OUTPUT_FILE should have what you want, though it has the copies of each object clumped together, instead of the objects of each block. That was easier, but I could rework it if it's important to have the objects for each block grouped together.

Let me know if it works or if it needs work. :)

#! /usr/bin/env python

# TommyMapDup.py, © 2008 stumpy
# Per http://freedomreborn.net/archive/index.php?topic=47730.0

# Grab all but the first item (assumed to be the map itself) listed in
# a layout file and duplicate each at uniform x and y increments.

# This is the file with the map and your "master" set of objects for one block
TEMPLATE_FILE = r'E:\freedom force vt3r\avengers_jla\Art\level layout\megacity\layout-template2.txt'

# The file to write to
OUTPUT_FILE = r'E:\freedom force vt3r\avengers_jla\Art\level layout\megacity\layout.txt'

# The upper and lower X and Y coordinate boundaries for the map
MAP_MIN_X = -13834.8
MAP_MAX_X = 13842.4
MAP_MIN_Y = -13536.8
MAP_MAX_Y = 13938.6

# The increments in X and Y
DELTA_X = 1280
DELTA_Y = 1200


# #######################################################
# The work is done below
# #######################################################

# find the list of x coordinates for a given object
def GetXCoordList(basex):
    numleft = int((basex-MAP_MIN_X)/DELTA_X)
    numright = int((MAP_MAX_X-basex)/DELTA_X)
    xlist = []
    for i in range(-numleft,numright+1):
        xlist.append( basex + i*DELTA_X )
    return xlist

# find the list of y coordinates for a given object
def GetYCoordList(basey):
    numbelow = int((basey-MAP_MIN_Y)/DELTA_Y)
    numabove = int((MAP_MAX_Y-basey)/DELTA_Y)
    ylist = []
    for i in range(-numbelow,numabove+1):
        ylist.append( basey + i*DELTA_Y )
    return ylist


TemplateNIFs = open(TEMPLATE_FILE,'r').readlines()
NIFDATA = []
# parse all the object data
for TNIF in TemplateNIFs:
    if TNIF.find(r"library\terrain")==0:
        continue
    try:
        nif, coordstr, quatstr = TNIF.rstrip().split('\t')
        coord = map(float,coordstr[1:-1].split(','))
        NIFDATA.append((nif,coord,quatstr))
    except:
        print 'trouble parsing line <%s>' % TNIF
# Now write everything out.
f = open(OUTPUT_FILE,'w')
# Map object first
f.write(TemplateNIFs[0])
# Write the objects. This write all instances of each object, then moves to the next object.
for NIF in NIFDATA:
    xcoords = GetXCoordList(NIF[1][0])
    ycoords = GetYCoordList(NIF[1][1])
    for y in ycoords:
        for x in xcoords:
            f.write('%s\t[%f,%f,%f]\t%s\n' % (NIF[0],x,y,NIF[1][2],NIF[2]))
f.close()

tommyboy

Thanks a gillian for this, Stumpy, it's a life saver, (not mine, but I probably would have killed someone else soon if I kept up with my manual method).

However, when I run it in WinPython, I get the following:
PythonWin 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32.
Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for further copyright information.
Traceback (most recent call last):
  File "C:\Python25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 312, in RunScript
    exec codeObject in __main__.__dict__
  File "E:\freedom force vt3r\avengers_jla\Art\level layout\megacity\TommyMapDup.py", line 56, in <module>
    nif, coordstr, quatstr = TNIF[:-1].split('\t')
ValueError: too many values to unpack
>>>


These are the adjustments I've made to the file itself:

# This is the file with the map and your "master" set of objects for one block
TEMPLATE_FILE = r'E:\freedom force vt3r\avengers_jla\Art\level layout\megacity\layout-template2.txt'

# The file to write to
OUTPUT_FILE = r'E:\freedom force vt3r\avengers_jla\Art\level layout\megacity\layout.txt'

# The upper and lower X and Y coordinate boundaries for the map
MAP_MIN_X = -13834.8
MAP_MAX_X = 13842.4
MAP_MIN_Y = -13536.8
MAP_MAX_Y = 13938.6


Any ideas from that?
Is it just too big?, I got the co-ord boundaries from the extents.txt, which looks like this:
[13842.4,13938.6,12850.5]
[-13834.8,-13536.8,-9100.69]

Since it has no labels for x and y I guessed which was which, I can try swapping them around if you think it's that.
I'm afraid the error message means little to me.

stumpy

Tommy, I think there might have been an extra tab or something at the end of one of the lines that was causing trouble. Probably something I should have thought of.

I have edited the code posted above with a slight change to accommodate end-of-line tabs. See if that works.

If not, maybe I am not looking at your template layout file the way I should. I thought I tried it with the one you posted above, but that one had extra line feeds, so I fixed them.

[Edit] I should have posted this straight off, but here is the edited version of the layout file I was testing with.
library\terrain\mega_city\megacity.NIF [0,0,0] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_11\building_11.nif [-259.997,539.981,-0.00332642] (quat 0 0 0.707107 0.707107)
library\area_specific\city\buildings\standard\building_11\building_11.nif [-219.997,219.981,-0.00332642] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_11\building_11.nif [220.003,-220.018,-0.00331879] (quat 0 0 1 0)
library\area_specific\city\buildings\standard\building_11\building_11.nif [260.003,-540.018,-0.00331879] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\buildings\standard\building_07\building_07.nif [-419.997,499.981,-0.00332642] (quat 0 0 1 0)
library\area_specific\city\buildings\standard\building_07\building_07.nif [420.003,-500.018,-0.00331879] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_07\building_07.nif [420.003,-500.018,-0.00331879] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_09\building_09.nif [-479.997,239.981,-0.00332642] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_09\building_09.nif [480.003,-240.018,-0.00331879] (quat 0 0 1 0)
library\area_specific\city\buildings\standard\building_06\building_06.nif [-239.997,379.981,-0.00332642] (quat 0 0 0.707107 0.707107)
library\area_specific\city\buildings\standard\building_06\building_06.nif [240.003,-380.018,-0.00331879] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\buildings\standard\building_04\building_04.nif [-579.997,539.981,-0.00332642] (quat 0 0 1 0)
library\area_specific\city\buildings\standard\building_04\building_04.nif [580.003,-540.018,-0.00331879] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_15\building_15.nif [-559.997,-480.019,-0.00278473] (quat 0 0 -1.19209e-007 1)
library\area_specific\city\buildings\standard\building_15\building_15.nif [280.003,519.982,0.00222778] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\buildings\standard\building_03\building_03.nif [-439.997,-540.019,-0.00278473] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_03\building_03.nif [220.003,399.982,0.00222778] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\buildings\standard\building_05\building_05.nif [-359.997,-540.019,-0.00278473] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_05\building_05.nif [220.003,319.982,0.00222778] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\buildings\standard\building_12\building_12.nif [-239.997,-540.019,-0.00278473] (quat 0 0 0 1)
library\area_specific\city\buildings\standard\building_12\building_12.nif [220.003,199.982,0.00222778] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\buildings\standard\building_01\building_01.nif [-519.996,-240.019,-0.00278473] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\buildings\standard\building_01\building_01.nif [520.003,479.982,0.00222778] (quat 0 0 1 0)
library\area_specific\city\buildings\standard\building_10\building_10.nif [-259.997,-280.019,-0.00278473] (quat 0 0 1 0)
library\area_specific\city\buildings\standard\building_10\building_10.nif [480.003,219.982,0.00222778] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\bin\bin.nif [-536.24,470.767,0.10054] (quat 0 0 0.382683 0.92388)
library\area_specific\city\street_objects\vent_02\vent_02.nif [-256.724,295.207,179.997] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [-559.504,110.487,40.1625] (quat 0 0 0 1)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [-377.997,428.981,139.997] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\bin\bin.nif [-285.566,141.918,0.10054] (quat 0 0 0.382683 0.92388)
library\area_specific\city\street_objects\bin\bin.nif [-285.566,154.312,0.10054] (quat 0 0 -0.5 0.866025)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [-400.058,110.487,40.1625] (quat 0 0 0 1)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-296.959,304.651,0.10054] (quat 0 0 0.130526 0.991445)
library\area_specific\city\street_objects\signs\sign_hotel_02\sign_hotel_02.nif [-349.954,122.436,94.6251] (quat 0 0 0 1)
library\area_specific\city\street_objects\signs\sign_burger_world\sign_burger_world.nif [-159.919,359.979,63.0708] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fire_hidrant\fire_hydrant.nif [-106.997,361.981,-0.00332642] (quat 0 0 0 1)
library\area_specific\city\street_objects\phone_booth\phone_booth.nif [-361.779,74.9233,-0.00332642] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\crate_02\crate_02.nif [-348.997,277.981,-0.00332642] (quat 0 0 0.130526 0.991445)
library\area_specific\city\street_objects\bin\bin.nif [-348.696,465.047,0.10054] (quat 0 0 0.991445 0.130526)
library\area_specific\city\street_objects\crate_02\crate_02.nif [-350.997,257.981,-0.00332642] (quat 0 0 0 1)
library\area_specific\city\street_objects\awnings\awning_long\awning_long.nif [-478.393,97.7343,0.10054] (quat 0 0 0 1)
library\area_specific\city\street_objects\bin\bin.nif [-550.198,472.441,0.10054] (quat 0 0 1 0)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [-127.897,87.3807,0.196671] (quat 0 0 0 1)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-549.997,374.981,-0.00332642] (quat 0 0 -0.130526 0.991445)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-521.997,375.981,-0.00332642] (quat 0 0 0.382683 0.92388)
library\area_specific\city\street_objects\street_bin\street_bin.nif [-444.617,67.9726,0.10054] (quat 0 0 0 1)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [-567.997,326.981,179.997] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-359.783,176.04,21.9967] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-359.783,191.067,21.9967] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\water_tower\water_tower.nif [-295.394,345.498,179.997] (quat 0 0 1 0)
library\area_specific\city\street_objects\vent_02\vent_02.nif [-225.718,-406.531,179.997] (quat 0 0 1 1.59792e-007)
library\area_specific\city\street_objects\vent_02\vent_02.nif [-193.999,-406.571,179.997] (quat 0 0 1 1.59792e-007)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-399.788,-179.565,21.9972] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\signs\sign_tobacco\sign_tobacco.nif [-520.743,-118.028,50.2405] (quat 0 0 1 0)
library\area_specific\city\street_objects\crate_01\crate_01.nif [-422.307,-463.893,0.100281] (quat 0 0 -0.608761 0.793353)
library\area_specific\city\street_objects\awnings\awning_square\awning_square.nif [-607.171,-110.02,24.9748] (quat 0 0 1 0)
library\area_specific\city\street_objects\dumpster\dumpster.nif [-440.644,-378.455,-0.358292] (quat 0 0 0.998135 -0.0610484)
library\area_specific\city\street_objects\bilboards\billboard_decal_01\billboard_decal_01.nif [-159.036,-197.643,92.1597] (quat 0 0 1 0)
library\area_specific\city\street_objects\bin\bin.nif [-401.587,-366.94,0.100281] (quat 0 0 1 0)
library\area_specific\city\street_objects\crate_02\crate_02.nif [-454.189,-466.25,0.100281] (quat 0 0 -0.793353 0.608761)
library\area_specific\city\street_objects\water_tower\water_tower.nif [-191.876,-509.913,139.997] (quat 0 0 1 0)
library\area_specific\city\street_objects\fusebox\fusebox.nif [-170.031,-479.518,21.9972] (quat 0 0 1 0)
library\area_specific\city\street_objects\awnings\awning_square\awning_square.nif [-428.017,-110.02,24.9748] (quat 0 0 1 0)
library\area_specific\city\street_objects\awnings\awning_square\awning_square.nif [-486.328,-110.02,24.9748] (quat 0 0 1 0)
library\area_specific\city\street_objects\street_bin\street_bin.nif [-353.395,-69.1858,0.100281] (quat 0 0 1 0)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [-128.097,-87.4192,0.197212] (quat 0 0 1 0)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-106.697,-237.819,-0.00278473] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-280.097,-66.019,-0.00278473] (quat 0 0 1 0)
library\area_specific\city\street_objects\post_box\post_box.nif [-109.997,-299.637,-0.00278473] (quat 0 0 1 0)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-106.697,-479.819,-0.00278473] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [-521.396,-66.019,-0.00278473] (quat 0 0 1 0)
library\area_specific\city\street_objects\vent_02\vent_02.nif [256.729,-295.244,179.997] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [559.51,-110.524,40.1625] (quat 0 0 1 0)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [378.003,-429.018,139.997] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\bin\bin.nif [285.572,-141.955,0.100548] (quat 0 0 0.92388 -0.382683)
library\area_specific\city\street_objects\bin\bin.nif [285.572,-154.349,0.100548] (quat 0 0 0.866025 0.5)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [400.064,-110.524,40.1625] (quat 0 0 1 0)
library\area_specific\city\street_objects\crate_01\crate_01.nif [296.965,-304.688,0.100548] (quat 0 0 0.991445 -0.130526)
library\area_specific\city\street_objects\signs\sign_hotel_02\sign_hotel_02.nif [349.959,-122.473,94.6251] (quat 0 0 1 0)
library\area_specific\city\street_objects\signs\sign_burger_world\sign_burger_world.nif [159.924,-360.016,63.0708] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\fire_hidrant\fire_hydrant.nif [107.003,-362.018,-0.00331879] (quat 0 0 1 0)
library\area_specific\city\street_objects\phone_booth\phone_booth.nif [361.784,-74.9603,-0.00331879] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\crate_02\crate_02.nif [349.003,-278.018,-0.00331879] (quat 0 0 0.991445 -0.130526)
library\area_specific\city\street_objects\bin\bin.nif [348.702,-465.084,0.100548] (quat 0 0 -0.130526 0.991445)
library\area_specific\city\street_objects\crate_02\crate_02.nif [351.003,-258.018,-0.00331879] (quat 0 0 1 0)
library\area_specific\city\street_objects\bin\bin.nif [536.246,-470.804,0.100548] (quat 0 0 0.92388 -0.382683)
library\area_specific\city\street_objects\awnings\awning_long\awning_long.nif [478.399,-97.7713,0.100548] (quat 0 0 1 0)
library\area_specific\city\street_objects\bin\bin.nif [550.204,-472.478,0.100548] (quat 0 0 0 1)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [127.903,-87.4177,0.196678] (quat 0 0 1 0)
library\area_specific\city\street_objects\crate_01\crate_01.nif [550.003,-375.018,-0.00331879] (quat 0 0 0.991445 0.130526)
library\area_specific\city\street_objects\crate_01\crate_01.nif [522.003,-376.018,-0.00331879] (quat 0 0 0.92388 -0.382683)
library\area_specific\city\street_objects\street_bin\street_bin.nif [444.623,-68.0096,0.100548] (quat 0 0 1 0)
library\area_specific\city\street_objects\chimney_01\chimney_01.nif [568.003,-327.018,179.997] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [359.789,-176.077,21.9967] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [359.789,-191.104,21.9967] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\water_tower\water_tower.nif [295.399,-345.535,179.997] (quat 0 0 0 1)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [280.103,-69.095,-0.00331879] (quat 0 0 1 -2.10734e-007)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [521.403,-69.095,-0.00331879] (quat 0 0 1 -2.10734e-007)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [106.703,-240.218,-0.00331879] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [106.703,-482.218,-0.00331879] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\crate_02\crate_02.nif [293.771,414.174,0.105293] (quat 0 0 0.991445 0.130526)
library\area_specific\city\street_objects\bin\bin.nif [393.081,361.572,0.105293] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [580.457,359.774,22.0022] (quat 0 0 0 1)
library\area_specific\city\street_objects\crate_01\crate_01.nif [296.129,382.293,0.105293] (quat 0 0 0.991445 -0.130526)
library\area_specific\city\street_objects\dumpster\dumpster.nif [381.567,400.629,-0.353279] (quat 0 0 0.748956 0.66262)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [150.552,359.036,40.1717] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\vent_02\vent_02.nif [353.491,185.704,180.002] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\awnings\awning_03\awning_03.nif [150.552,517.632,40.1717] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\vent_02\vent_02.nif [353.45,153.985,180.002] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\bilboards\billboard_decal_01\billboard_decal_01.nif [562.379,119.021,92.1647] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\water_tower\water_tower.nif [250.109,151.862,140.002] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\fusebox\fusebox.nif [280.504,130.016,22.0022] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\traffic_light\traffic_light.nif [128.202,88.0821,0.202225] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [522.203,66.6819,0.00222778] (quat 0 0 0 1)
library\area_specific\city\street_objects\post_box\post_box.nif [460.384,69.9819,0.00222778] (quat 0 0 0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [109.08,481.382,0.00222778] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [109.08,240.082,0.00222778] (quat 0 0 -0.707107 0.707107)
library\area_specific\city\street_objects\street_light_single\street_light_single.nif [280.203,66.6819,0.00222778] (quat 0 0 0 1)
library\vehicles\car_01\car_01.nif [-74.4914,488.271,0] (quat 0 0 0 1)
library\vehicles\car_02\car_02.nif [33.6918,-23.7157,0] (quat 0 0 0.258819 0.965926)
library\vehicles\taxi\taxi.nif [43.0475,52.0736,0] (quat 0 0 0.965926 0.258819)
library\vehicles\police\police_car.nif [-32.4996,-78.0654,0] (quat 0 0 0.258819 0.965926)
library\vehicles\taxi\taxi.nif [205.173,31.7001,0] (quat 0 0 0.707107 0.707107)
library\vehicles\taxi\taxi.nif [-582.633,-31.6636,0] (quat 0 0 0.707107 0.707107)
library\vehicles\police\police_car.nif [-7.86447,106.051,0] (quat 0 0 -0.382683 0.92388)
library\vehicles\car_01\car_01.nif [72.4873,-411.401,0] (quat 0 0 1 0)
library\area_specific\city\street_objects\paper_01\start.nif [461.92,-59.3046,21.2551] (quat 0 0 0.608761 0.793353)
library\area_specific\city\street_objects\pigeons2\pigeons2.nif [-141.827,-114.615,0] (quat 0 0 0.354291 0.935135)
library\area_specific\city\street_objects\rat_01\rat_01.nif [-490.008,491.778,2.28882e-005] (quat 0 0 0.766044 0.642788)

tommyboy

Fantastic!
Whatever you did worked.
Stumpy, I owe you big time, this is The Best Thing Ever, and I say that without any overstatement or hyperbole.

It outputted the biggest level.txt I've ever seen (8.16Mb), which the ffv3r editor is struggling to load even as I type, with steam and sparks metaphorically shooting out of my pc. Now to run that bad boy. Or not. FFedit deems to have hung after clicking the 'run' button. I think it might be the dilithium crystals. I'll reverse the polarity of the forward deflector shield, that usually works..I manually stopped the process.
Hmmmm... when I run the game trying to get to the rumble room to load it gets a message about:
'alert: CMissionMGR::doDiscoverIn(),invalid mission file format'..
Perhaps as was alluded to earlier, the game simply cannot load and run that much map...
I'll investigate further.

But thanks again Stumpy, Lord knows how badly I would have reacted after several weeks of manually setting up the map only to get this error message.

stumpy

Your very welcome.  :) I think it's cool for you to even attempt a map on this scale.  :blink: :cool: I kinda wonder if my old PC could even hadnle the motion for that many cars and rats! :D

For testing purposes, you can pretty easily just change the X and Y limits in the code to create a map with fewer filled blocks in it. Maybe go from +/-3000 in each direction (about a 5x5 or so block grid) and see what happens. That should be small enough to load.

And, it could be that my code still isn't producing a proper layout.txt (though it looked okay to me, I don't really know what one should look like).

tommyboy

Nah, your output file looks good. I've looked at that stuff a Lot in the last few days, it looks fine.
I noticed that I had used the original mp_city_small level.txt to generate the file, which of course has a tiny terrain file, so it wont have liked trying to squeeze all that stuff into about 4 blocks in the game.
I've edited the level.txt to point to the large megacity terrain, and am re-saving the map in the editor, which has so far taken fifteen minutes and isnt finished. mission.dat is currently 31Mb and growing.35MB...39.5Mb...43.5Mb
So I'm guessing that the wrong terrain and maybe not having saved it all before might explain the error I got before.
Muhahahah! I've made a single map bigger than most Mods. Now to run my infamous AvengersVsJLA battle from the avengersspecialMod on the megamap, and create a Black Hole which will destroy Everything. Except me, because obviously I'll be in the Eye of the Black Hole.

|