Skip to content

Commit f2cbe7f

Browse files
committed
textures: create map texture
1 parent af66747 commit f2cbe7f

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

src/game.ml

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,17 @@ module Textures = struct
5353
type t = {
5454
maps: (Gmap.area * R.Texture.t) list;
5555
pics: (string, R.Texture.t) Hashtbl.t;
56+
map: R.Texture.t;
5657
}
5758

58-
let make () = {maps=[]; pics=Hashtbl.create 20}
59-
60-
let of_resources win res =
59+
let of_resources win res area =
6160
let maps = List.map (fun (a, v) -> a, R.Texture.make win @@ Gmap.to_img v) res.res_maps in
61+
let map = List.assoc ~eq:(Stdlib.(=)) area maps in
6262
let pics = Hashtbl.to_iter res.res_pics
6363
|> Iter.map (fun (s, arr) -> s, R.Texture.make win arr)
6464
|> Hashtbl.of_iter
6565
in
66-
{maps; pics}
66+
{maps; pics; map}
6767
end
6868

6969
type state = {
@@ -79,26 +79,26 @@ let run ?(view=Screen.MapGen None) ?(area=Gmap.WestUS) () : unit =
7979
let random = Random.get_state () in
8080

8181
Printf.printf "Loading resources...";
82-
let res_maps = List.map (fun (x,s) -> x, "./data/" ^ s |> Gmap.of_file) map_names in
83-
let res_cities = List.map Mapgen.load_city_list Gmap.areas |>
84-
List.combine Gmap.areas
85-
in
86-
let res_pics = load_pics () in
87-
let res_fonts = Font.load_all () in
88-
let resources = {res_maps; res_pics; res_fonts; res_cities} in
8982

90-
let screen = Screen.make view in
83+
let init_fn win =
84+
let res_maps = List.map (fun (x,s) -> x, "./data/" ^ s |> Gmap.of_file) map_names in
85+
let res_cities = List.map Mapgen.load_city_list Gmap.areas |>
86+
List.combine Gmap.areas
87+
in
88+
let res_pics = load_pics () in
89+
let res_fonts = Font.load_all () in
90+
let resources = {res_maps; res_pics; res_fonts; res_cities} in
9191

92-
let map = List.assoc ~eq:(Stdlib.(=)) area res_maps in
93-
let cities = List.assoc ~eq:(Stdlib.(=)) area res_cities |> Array.of_list in
94-
let game = {map; area; cities} in
95-
let textures = Textures.make () in
96-
let state = {game; screen; resources; random; textures} in
97-
Printf.printf " done.\n";
92+
let screen = Screen.make view in
9893

99-
let init_fn win =
100-
let textures = Textures.of_resources win state.resources in
101-
let state = {state with textures} in
94+
let map = List.assoc ~eq:(Stdlib.(=)) area res_maps in
95+
let cities = List.assoc ~eq:(Stdlib.(=)) area res_cities |> Array.of_list in
96+
let game = {map; area; cities} in
97+
98+
let textures = Textures.of_resources win resources area in
99+
let state = {game; screen; resources; random; textures} in
100+
101+
Printf.printf " done.\n";
102102

103103
let update (s:state) _event =
104104
let state =
@@ -122,6 +122,7 @@ let run ?(view=Screen.MapGen None) ?(area=Gmap.WestUS) () : unit =
122122
let () = R.error_handle @@
123123
let* () = R.clear_screen win in
124124
let* () = R.render win bg_tex in
125+
let* () = R.render win @@ List.assoc ~eq:(Gmap.equal_area) area s.textures.maps in
125126
Result.return ()
126127
in
127128
s

src/mapgen.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,6 @@ type t = {
266266
current: [`Mountains | `Resources | `Cities];
267267
}
268268

269-
270269
let init r area cities =
271270
let mountains = add_mountains_list r area in
272271
let resources = add_resources_list area in

0 commit comments

Comments
 (0)