Nice work, I’ll try and lend you a hand if I can. The more diverse and alive development is, the better chances this game will still be kicking years from now. I’ll give you a quick run down on getting it in game and what the code would generally look like.
mapgen.ccp
case ot_small_storage_north:
case ot_small_storage_east:
case ot_small_storage_south:
case ot_small_storage_west: {
// Init to grass & dirt;
fill_background(this, &grass_or_dirt);
mapf::formatted_set_terrain(this, 0, 0,
"........................\n\
.|------|...............\n\
.|,,d,ll|6......|-|---|.\n\
.|,hd,,,|C#####C|,|,,,|.\n\
.|,,d,,,=......6|,M,,,|.\n\
.|,,,,,,G.......+,|,,,|.\n\
.|+--|gg|.......|,|---|.\n\
.|,st|..........|,|,,,|.\n\
.|---|..........|,M,,,|.\n\
.c..............|,|,,,|.\n\
.c..............|,|---|.\n\
.c..............|,|,,,|.\n\
.c..............|,|,,,|.\n\
.c..............|,|,,,|.\n\
.|---|+|........|+|---|.\n\
.|,,,|,|..............c.\n\
.|,,,M,|......|--+----|.\n\
.|,,,|,|......#,,,,,,,|.\n\
.|---|,|......#,,,,,,,|.\n\
.|,,,|,|......#,,,,,,,|.\n\
.|,,,M,|......#,,,,,,,|.\n\
.|,,,|,+......|6,loooo|.\n\
.|---|-|CCCCCC|-------|.\n\
........................\n",
mapf::basic_bind("g G = o l s h d # M . c C 6 , - | t +",
t_wall_glass_h, t_wall_glass_v, t_door_glass_c, t_counter, t_locker, t_sink, t_chair, t_desk, t_door_metal_locked,
t_door_metal_c, t_grass, t_fence_v, t_fence_h, t_gates_mech_control, t_floor, t_wall_h, t_wall_v, t_toilet, t_door_c),
mapf::end() );
//Place item spawns here
if (terrain_type == ot_small_storage_east)
rotate(1);
if (terrain_type == ot_small_storage_south)
rotate(2);
if (terrain_type == ot_small_storage_west)
rotate(3);
} break;
omdata.h
//add this to the list under "enum oter_id"
ot_office_cubical_north, ot_office_cubical_east, ot_office_cubical_south, ot_office_cubical_west,
//in the same relative position after "oter_t oterlist[num_ter_types]" add this...
{"small storage unit", '^', c_ltgray, 5, build_extras, false, false},
{"small storage unit", '>', c_ltgray, 5, build_extras, false, false},
{"small storage unit", 'v', c_ltgray, 5, build_extras, false, false},
{"small storage unit", '<', c_ltgray, 5, build_extras, false, false},
Finally, in overmap.ccp
Line ~81
...
oter_id ret = ot_s_lot;
const int type = rng(0, 28);
switch (type) {
...
case 27: ret = ot_police_north; break;
case 28: ret = ot_small_storage_north; break;
}
...
Tips
-I prefer to make my floor tiles periods and leave the grass squares as spaces. The game interprets these as randomized dirt/grass so that it blends with the natural background.
-The game separates walls into vertical and horizontal, the same with glass walls. At intersections a vertical wall always triumphs and the game uses logic to decide how it should look.
-Add pavement and sidewalks to her and I’d make the bathroom have at least one path of walkway around the sink/toilet.
-for 2x2 buildings the code is setup to place the entrance at the south west corner and facing south
-don’t feel intimidated by the code, once you get the hang of it you can add a 1x1 building in less than an hour
I’m looking forward to what you come up with.