Jump to content
tagehring

Config.bmp random generator?

27 posts in this topic Last Reply

Highlighted Posts

Posted:
Last Online:  
 

I've been working a lot lately with making maps; I use SC4Mapper and SC4Terraformer with DEM data modified in QGIS and Photoshop to make my regions, but like to have some variety in the city layouts so I'm not playing on a grid of large cities. Using the "modify config.bmp" option in SC4Mapper and changing the layout manually is so boring and forever-taking.

The thought occurred to me that it would be super handy to have a tool that would allow you to put in the dimensions of the map you're working on in km, what proportion of small, medium, and large cities you want, and have it output a random config.bmp you could use with a given region. I know nothing about programming or the math involved, so this is way out of my wheelhouse. It doesn't seem terribly complicated; is this something that's deceptively too complex to do?

  • Like 2

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

It prolly wouldn't be too terribly complicated to program that, but said programmer would need to have the desire to do it. *;) At my skill level I imagine it'd take me several hours. *:blush:

A Plan B you could use tho would be to create new, random regions in the game and use those config.bmps. If your mapped region is larger than the standard 1025 x 1025 pixels which those config.bmps are made for, you could use 4 of them pasted into a 32 x 32 config.bmp file for a 2049 x 2049 pixel map. 9 would fit a 48 x 48 config.bmp for a 3073 x 3073 map and so on.

  • Like 1

Chance favors the prepared mind. ― Louis Pasteur  
Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

Are you new here? Check out the Introduction and Guide to Simtropolis.

Share this post


Link to post
Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Hmm. It's hard to bribe someone with baked goods on an online forum, so my usual inducement doesn't work. Have a place you'd like mapped I could do in exchange? :D

    I usually work with 48x48 regions, as that's the largest I seem to be able to work with in Terraformer without it randomly crashing on me. So coming up with a few config.bmp patterns and picking one at random could work. More variety could come from flipping them horizontally or vertically or rotating them 90 degrees, too. *:idea:

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    1 hour ago, tagehring said:

    Hmm. It's hard to bribe someone with baked goods on an online forum, so my usual inducement doesn't work.

    *:lol:

     

    1 hour ago, tagehring said:

    Have a place you'd like mapped I could do in exchange?

    That would be a good bribe, but I've modified a version of the Planet C source code to make maps I'm quite happy with. *:P

     

    1 hour ago, tagehring said:

    I usually work with 48x48 regions, ...

    I presume here you are referring to the config.bmp size and that would equate to a map size of 3,073 x 3,073.

    The simple part would be to enter the map size in pixels and then calculate that down to the config.bmp size needed. Easy-peasy there. (If writing it, it should handle any size SC4 can tolerate.) I would guess the first step would be to create a two dimension data array. You can consider those like rows and columns in a spreadsheet or just a piece of graph paper. Each cell then would be one pixel of the config.bmp. Let's number them 1 to 48 across and 1 to 48 down. (The C language likes array elements as offsets and would use 0 to 47, but that just means a teeny bit of extra coding to keep it happy.)

    So, we'd start with the large city tiles that need to have 4 x 4 blue. We could generate two random numbers R & C between 1 and 44 (4 less than the max in this example) for the upper left corner of the blue block. Then fill in that (R, C) cell with a number to represent blue color such as 3 (with 2 meaning medium and 1 being small). Next fill in (R+1, C), (R+2, C), and (R+3, C) below the block's starting position. Then fill in a 3 for the three columns after, so doing (R, C+1), (R+1, C+1), (R+2, C+1), and (R+3, C+1), on up to (R+3, C+3) for the final pixel of the blue block.

    After that we have a total of one large city tile defined. When we generate our next random R & C numbers, we'd have to check that all 16 cells are free. It could be just a bunch of trial and error until the requisite number blue blocks are defined. Mediums would follow and it'd be the same random trial and error placing those 2 x 2's until all of the required greens were filled in. What's left with no number would become the small city tiles.

    Once the array is filled in, we can simply output the two dimensional array as a 24 bit .bmp file. There would be IF/THENs to change the 1, 2 or 3 to the correct RGB code and the output has to be upside down and backwards or something like that for the .bmp structure. There's also header information it needs. This part is no problem as I already have routines to output 24 bit color .bmp files. (The tricky part for my own program was figuring out how to output true 8-bit grayscale which I eventually did.)

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    14 hours ago, CorinaMarie said:

    I presume here you are referring to the config.bmp size and that would equate to a map size of 3,073 x 3,073.

    The simple part would be to enter the map size in pixels and then calculate that down to the config.bmp size needed. Easy-peasy there. (If writing it, it should handle any size SC4 can tolerate.) I would guess the first step would be to create a two dimension data array. You can consider those like rows and columns in a spreadsheet or just a piece of graph paper. Each cell then would be one pixel of the config.bmp. Let's number them 1 to 48 across and 1 to 48 down. (The C language likes array elements as offsets and would use 0 to 47, but that just means a teeny bit of extra coding to keep it happy.)

    I was with you up to this point; this is where you lose me. But, I may throw this to a friend of mine who does this kind of thing for a living and see if it's something he can do. 

    • Like 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    10 hours ago, tagehring said:

    But, I may throw this to a friend of mine who does this kind of thing for a living and see if it's something he can do. 

    Sounds good. If they can output a comma delimited file which contains the numbers 1 or 2 or 3 in the correct positions, I'd be willing to take it from there to convert that to the RGB .bmp file. For a real simple example, let's say we want a config.bmp that is 12 x 12 pixels. Visualize the .csv file like the following (I'm separating it by rows so it's easier to see what's going on).

    2, 2, 3, 3, 3, 3, 1, 2, 2, 2, 2, 1,
    2, 2, 3, 3, 3, 3, 1, 2, 2, 2, 2, 1,
    1, 1,
    3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
    1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
    2, 2, 1, 2, 2, 1, 1, 1, 3, 3, 3, 3,
    2, 2, 1, 2, 2, 1, 2, 2, 3, 3, 3, 3,
    3, 3, 3, 3, 1, 1, 2, 2, 1, 2, 2, 1,
    3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 1,
    3, 3, 3, 3, 1, 2, 2, 1, 2, 2, 1, 1,
    3, 3, 3, 3, 1, 2, 2, 1, 2, 2, 2, 2,
    2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2,
    2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1

    Where:
    1 = A Small City Tile
    2 = A Medium City Tile
    3 = A Large City Tile

    Note: I've added a space character after each comma to make it visually square. Said space would not be included in the .csv file.

    The key part of the code has to make sure that each medium and large tile is properly 2 x 2 or 4 x 4 respectively. And the file should have the first two elements be the width followed by the height and then the data for the values in their positions.

    It would be like this for the above example:

    12,12,2,2,3,3,3,3,1,2,2,2,2,1,2,2,3,3,3,3,1,2,2,2,2,1,1,1,3,3,3,3,1,1,3,3,3,3,1,1,3,3,3,3,1,1,3,3,3,3,2,2,1,2,2,1,1,1,3,3,3,3,2,2,1,2,2,1,2,2,3,3,3,3,3,3,3,3,1,1,2,2,1,2,2,1,3,3,3,3,1,1,1,1,1,2,2,1,3,3,3,3,1,2,2,1,2,2,1,1,3,3,3,3,1,2,2,1,2,2,2,2,2,2,1,2,2,1,1,2,2,1,2,2,2,2,1,2,2,1,1,2,2,1,1,1

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Interesting problem! How I would tackle it into an n*n square  

    1) First generate the 3s (4x4) randomly making sure they don't overlap

    2) then for all gaps between the threes generate some 2s (2x2) randomly making sure they don't overlap anything 

    3) and everything left must be 1s.


      Edited by rivit  

    glitches
    • Like 2

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    I've had another idea on it.

    Just travel the rows and columns one time (nested loops). At each cell check if it is empty and if so call a function that would check if a 4 x 4 could fit. If yes, then roll the dice for the odds and if that is yes, fill the appropriate 16 cells with the 3's. If no, roll the dice for a 2 x 2. The dice roll would be the percentage chance for each tile size. Once all the way thru the grid then whatever isn't filled in is the ones as in your 3) above.

    • Like 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    1 minute ago, Lucario Boricua said:

    Would the percentage be defined by number of each city district size, by the total area occupied by each city district size or by the remaining area occupied by each city district size?

    While I'm not exactly sure what @tagehring has in mind, I suspect it would work best if it were the percentage of the total region that is to be occupied by the corresponding city tile sizes. So if putting in 75% for Large, 20% for Medium, and 5% for Small it'd then try to make 108 Large tiles , 115 Medium tiles, and 116 Small tiles when using a 48 x 48 pixel config.bmp.

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    3 hours ago, CorinaMarie said:

    I've had another idea on it.

    That's much neater and linear in time. Also solves the problem of ending up with the right number of each size better.

    • Like 2

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    I've always just used the Landscape Designer to create my config.bmp, but I don't tend to create a lot of new regions and LD is very old so not sure how well it would work on a newish computer

    The help for it says

    Quote

    Landscape Designer is a user friendly, design and paint utilities specifically developed to create SimCity 4 region.ini, terrain images, and config bitmaps.

    Have trouble coming up with new or unusual region names, let Landscape Designer assist you by providing a database of over 23,400 real city names.

    You have a terrain image you want to use as a region map but it is not the SimCity 4 mandatory 8-bit grayscale or the downloaded terrain image can not be rendered in SimCity 4, Landscape Designer will convert and/or correct these images for you.

    Grayscale images can be very difficult to visualize how SimCity 4 will render to a region map. With the Terrain Generator, a 2D overhead view provides a graphical representation of a rendered SimCity 4 region map. User selectable Color Scheme, used with the 2D overhead view, provides a variety of different 2D views.

    Landscape Designer will create or open config bitmaps ranging from 4x4 to 64x64 pixels and create or load terrain images ranging from 257x257 to 4097x4097 pixels.
     

     

    • Thanks 2

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    1 minute ago, Lucario Boricua said:

    Landscape Designer works with no issues in an up-to-date Windows 10 machine, and thus I consider it a good choice to address the random config.bmp generation.

    I took a peek in it myself and I couldn't find an option to generate a random config.bmp. *:blush:

    • Like 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    6 minutes ago, Lucario Boricua said:

    Landscape Designer works with no issues in an up-to-date Windows 10 machine, and thus I consider it a good choice to address the random config.bmp generation.

    I've played around with it, but didn't see a way to have it output a random config file, just regions full of large, medium, or small cities. I use SC4Mapper to edit them manually, myself, but for larger regions that can be pretty tedious. How do you use LD to generate a random layout?

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    LD doesn't have a random setting as such but what it does do ...

     Say you select the large regions and it can't make all the config file large regions it makes as much as it can large it then fills in the gaps with medium regions and then if it's still got spaces left it makes them small regions

    • Thanks 1

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    25 minutes ago, catty-cb said:

    LD doesn't have a random setting as such but what it does do ...

     Say you select the large regions and it can't make all the config file large regions it makes as much as it can large it then fills in the gaps with medium regions and then if it's still got spaces left it makes them small regions

    Yeah, SC4Mapper does the same thing.

    • Thanks 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    So, back to the original topic. *:P

    I've decided to tackle this project. (It'll be slow going cause of my full time job and I'm having to reacquaint myself with C coding.) I'm going with the idea of an .ini file for the settings since that's easily editable in plain text.


    Sample of CoriBmp.ini:

    Number_Of_Maps_To_Generate = 5
    Grayscale_Map_Width = 3073
    Grayscale_Map_Height = 3073
    Percent_Of_Region_Area_As_Large_Tiles = 85
    Percent_Of_Region_Area_As_Medium_Tiles = 11
    Percent_Of_Region_Area_As_Small_Tiles = 4


    Sample test output:

    7010-1512.jpg

     

    The code so far:

    /* CoriBmp.c */
    
    #define O_BINARY 0x8000
    
    #include <stdio.h>
    #include <errno.h>
    #include <math.h>
    #include <string.h>
    #include <stdlib.h>
    
    /* Define the default values in case CoriBmp.ini does not exist */
    int Number_Of_Maps_To_Generate = 1;
    int Grayscale_Map_Width = 1025;
    int Grayscale_Map_Height = 1025;
    int Percent_Of_Region_Area_As_Large_Tiles = 80;
    int Percent_Of_Region_Areas_As_Medium_Tiles = 15;
    int Percent_Of_Region_Area_As_Small_Tiles = 5;
    
    /* Define some variables to keep track of things */
    double Percent_Medium_Created = 0;
    double Percent_Large_Created = 0;
    double Overall_Progress_Percent = 0;
    int    Current_Row = 0;
    int    Current_Col = 0;
    int    Small_Value = 1;
    int    Medium_Value = 2;
    int    Large_Value = 3;
    
    /* Two dimensional data array to hold tile size value
         1 = Small City Tile
         2 = Medium City Tile
         3 = Large City Tile */
    int **Cell_Value;
    
    
    /* ===================================== */
    /*                                       */
    /*          Main Program Start           */
    /*                                       */
    /* ===================================== */
    
    int main()
    
    {
      /* Define functons, file pointers, and file names.
          OutFileName will have width, height, and incremental number appended.
          Ergo, Config-48x48-0001.bmp */
      void ReadINI();
      void FillTheGrid();
      void CreateConfigBmpfile();
      FILE *OutFile, *SettingsFile = NULL;
      char OutFileName[24] = "Config";
      char SettingsFileName[12] = "CoriBmp.ini";
    
      
      /* Do the cool shit. */
      fprintf(stdout, "\nStart CoriBmp: The Config.bmp Creator for SimCity 4\n");
      fprintf(stdout, "---------------------------------------------------\n");
      ReadINI(SettingsFile, SettingsFileName);
    
      int LoopCounter = 0;
      while(LoopCounter < Number_Of_Maps_To_Generate) {
        LoopCounter += 1;
        FillTheGrid();
        CreateConfigBmpfile();
        fprintf(stdout, "Number of Bmps Remaining: %d\n", Number_Of_Maps_To_Generate - LoopCounter);
      }
    
      /* All done. Bye, bye. */
      exit(0);
    }
    
    
    void ReadINI(FILE *SettingsFile, char *SettingsFileName)
    {
      int  iniValue = 0;
      char iniVariableName[40];
      char iniEqualSign[2];
    
      if (NULL == (SettingsFile = fopen(SettingsFileName, "r"))) {
          fprintf(stderr,
    	      "Cannot open %s\n",
    	      SettingsFileName);
          exit(1);
      }
    
      while(fscanf(SettingsFile, "%39s %1s %d", &iniVariableName, &iniEqualSign, &iniValue) == 3)
        {
          fprintf(stdout, "iniRead: %s %s %d\n", iniVariableName, iniEqualSign, iniValue);
          if (strcmp(iniVariableName, "Number_Of_Maps_To_Generate") == 0) {
                Number_Of_Maps_To_Generate = iniValue;
                fprintf(stdout, " Assigned: %d\n", Number_Of_Maps_To_Generate);
          }
          if (strcmp(iniVariableName, "Grayscale_Map_Width") == 0) {
                Grayscale_Map_Width = iniValue;
                fprintf(stdout, " Assigned: %d\n", Grayscale_Map_Width);
          }
          if (strcmp(iniVariableName, "Grayscale_Map_Height") == 0) {
                Grayscale_Map_Height = iniValue;
                fprintf(stdout, " Assigned: %d\n", Grayscale_Map_Height);
          }
          if (strcmp(iniVariableName, "Percent_Of_Region_Area_As_Large_Tiles") == 0) {
                Percent_Of_Region_Area_As_Large_Tiles = iniValue;
                fprintf(stdout, " Assigned: %d\n", Percent_Of_Region_Area_As_Large_Tiles);
          }
          if (strcmp(iniVariableName, "Percent_Of_Region_Areas_As_Medium_Tiles") == 0) {
                Percent_Of_Region_Areas_As_Medium_Tiles = iniValue;
                fprintf(stdout, " Assigned: %d\n", Percent_Of_Region_Areas_As_Medium_Tiles);
          }
          if (strcmp(iniVariableName, "Percent_Of_Region_Area_As_Small_Tiles") == 0) {
                Percent_Of_Region_Area_As_Small_Tiles = iniValue;
                fprintf(stdout, " Assigned: %d\n", Percent_Of_Region_Area_As_Small_Tiles);
          }
        }
        fclose(SettingsFile);
    }
      
    void FillTheGrid()
    {
      /* To Do */
      fprintf(stdout, "\nFill The Grid - To Do");
    }
    
    void CreateConfigBmpfile()
    {
      /* To Do */
      fprintf(stdout, "\nCreate Config.bmp File - To Do\n");
    }


    *:)

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    I added a bit to this part so now if the CoriBmp.ini does not exist, it'll create one:

      if (NULL == (SettingsFile = fopen(SettingsFileName, "r"))) {
        fprintf(stdout, "CoriBmp.ini not found. Creating file with default settings.\n\n");
        if (NULL == (SettingsFile = fopen(SettingsFileName, "wt"))) {
          fprintf(stderr, "Cannot create %s,\n", SettingsFileName);
          exit(1);
        } else {
            fprintf(SettingsFile, "Number_Of_Bmps_To_Generate = %d\n", Number_Of_Bmps_To_Generate);
            fprintf(SettingsFile, "Grayscale_Map_Width = %d\n", Grayscale_Map_Width);
            fprintf(SettingsFile, "Grayscale_Map_Height = %d\n", Grayscale_Map_Height);
            fprintf(SettingsFile, "Percent_Of_Region_Area_As_Large_Tiles = %d\n", Percent_Of_Region_Area_As_Large_Tiles);
            fprintf(SettingsFile, "Percent_Of_Region_Area_As_Medium_Tiles = %d\n", Percent_Of_Region_Area_As_Medium_Tiles);
            fprintf(SettingsFile, "Percent_Of_Region_Area_As_Small_Tiles = %d", Percent_Of_Region_Area_As_Small_Tiles);
            fclose(SettingsFile);
            if (NULL == (SettingsFile = fopen(SettingsFileName, "r"))) {
               fprintf(stderr, "Cannot reopen newly created %s.", SettingsFileName);
               exit(1);
            }
        }
      }

    (And yes, I did change Number_Of_Maps_To_Generate to Number_Of_Bmps_To_Generate throughout the code.)

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Like you Cori, this was interesting for me to try, so here (for all to thrash) a v1 of a small app (24K) that can make and save Config.bmps up to 60x60

    Its not bulletproof at all so beware, but it is serviceable and needs testers (read experimental types unafraid of crashing things).

    For safety's sake Dont try the config.map on any important Region.

    Looks like this:

    ConfigBMP.png.728217b10dde33465746a1fee78233d9.png

    In the zip you will find the exe which is VB.NET v3.5 (32bit should work on any windows) and can go anywhere but don't put it into C/Programs as it writes to the folder its in.

    Also the source of the program in frmMain.vb - it can't be compiled as I've got some helper code for bitmaps which is not included, but you can at least see how it works - essentially Cori's algorithm from above, with a little tweaking and can still be improved I'm sure.. 

    Set your parameters and click Go. If you like the result click Save and a config.bmp will be written into the folder the program is in. It gets some way to the percentages (% of tiles of that sort, not area) but you'll see its far from optimised. Have fun.

    ConfigBMPv1.zip

    • Like 2

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    6 hours ago, rivit said:

    Like you Cori, this was interesting for me to try, so here (for all to thrash) a v1 of a small app (24K) that can make and save Config.bmps up to 60x60

    Very nice. Much better than what I was writing as yours has a graphical interface. *:thumb:

     

    6 hours ago, rivit said:

    Its not bulletproof at all so beware, but it is serviceable and needs testers (read experimental types unafraid of crashing things).

    I managed to confuzzle it. *:P

    When adjusting the large or medium I see it makes the appropriate changes to the smalls to keep the balance. However, if then increasing the smalls it'll let me just go on:

    7010-1524.jpg

    7010-1525.jpg

     

    One thing I'd like it to have is a selection based on map size with the minimum of 65 px and then multiples of 64 (+1) up to your maximum. Ideally, too, allow the width and height to be adjusted separately as there are lots of maps which are not square.

    Edit: And those missing medium tiles came thru as RGB 0, 128, 0 for the green rather than the 255 it needs. *;)

    7010-1526.jpg

    • Like 2
    • Thanks 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    This is so cool! You guys are amazing! *:rofl:

    One thing I did notice right off the bat, testing it on a PNG of the Iron Range: SC4 Mapper doesn't read the green shade as valid, resulting in dropped cities. It worked when I opened the config.bmp in Photoshop and adjusted the green from #008000 to #00ff00. Output should ideally be #ff0000 for red, #00ff00 for green, and #0000ff for blue. 

    I'm with Cori about the size being in pixels and by dimension if possible. I've just gotten my hands on 25m DEM data for the British Isles and have a 16bit grayscale PNG scaled to be 1:1 in the game (it's 7GB and 1000km on a side), so I'll be working on a series of maps that ideally won't be square. 

    1Config.bmp

    2Config.bmp

    test1.jpg

    test2.jpg

    • Like 2
    • Thanks 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Excellent. Works well. *:yes:

    Created with your tool:

    7010-1531.jpg

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    One suggestion I would add is having the option to determine region size not in terms of pixels, but rather binary kilometers. Small city districts are squares whose side measures 1 binary kilometer, medium ones measure 2 binary kilometers and large ones measure 4.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    8 minutes ago, Lucario Boricua said:

    One suggestion I would add is having the option to determine region size not in terms of pixels, but rather binary kilometers.

    I'd personally want to keep it as pixels since that directly relates to the grayscale image size. *;)

    • Yes 1

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites

    Sign In or register to comment...

    To comment in reply, you must be a community member

    Sign In  

    Already have an account? Sign in here.

    Sign In Now

    Create an Account  

    Sign up to join our friendly community. It's easy!  

    Register a New Account


    ×

    Thank You for the Continued Support!

    Simtropolis depends on donations to fund site maintenance costs.
    Without your support, we just would not be in our 24th year online!  You really help make this a great community. *:thumb:

    But we still need your support to stay online. If you're able to, please consider a donation to help us stay up and running. This helps sustain a platform where we can share our community creations for years to come.

    Make a Donation, Get a Gift!

    Expand your city with the best from the Simtropolis Exchange.
    Make a Donation and get one or all three discs today!

    STEX Collections

    By way of a "Thank You" gift, we'd like to send you our STEX Collector's DVD. It's some of the best buildings, lots, maps and mods collected for you over the years. Check out the STEX Collections for more info.

    Each donation helps keep Simtropolis online, open and free!

    Thank you for reading and enjoy the site!

    More About STEX Collections