Use world for isSolid in map

For some reason, I made all my map tile constants have to be shifted by
one. It's very annoying.
master
Louis Pearson 2022-08-05 17:53:27 -06:00
parent c4663deb1f
commit d81c1f5ab1
1 changed files with 6 additions and 7 deletions

View File

@ -2,6 +2,7 @@ const std = @import("std");
const assets = @import("assets"); const assets = @import("assets");
const util = @import("util.zig"); const util = @import("util.zig");
const w4 = @import("wasm4.zig"); const w4 = @import("wasm4.zig");
const world = @import("world.zig");
const Vec2 = util.Vec2; const Vec2 = util.Vec2;
const Vec2f = util.Vec2f; const Vec2f = util.Vec2f;
@ -127,7 +128,6 @@ pub fn collide(this: @This(), body: BodyInfo) CollisionInfo {
while (i <= @floatToInt(i32, bot_right[0])) : (i += 1) { while (i <= @floatToInt(i32, bot_right[0])) : (i += 1) {
var a: isize = @floatToInt(i32, top_left[1]); var a: isize = @floatToInt(i32, top_left[1]);
while (a <= @floatToInt(i32, bot_right[1])) : (a += 1) { while (a <= @floatToInt(i32, bot_right[1])) : (a += 1) {
const tile = this.getTile(i, a) orelse continue; const tile = this.getTile(i, a) orelse continue;
const tilex = @intToFloat(f32, i * tile_width); const tilex = @intToFloat(f32, i * tile_width);
const tiley = @intToFloat(f32, a * tile_height); const tiley = @intToFloat(f32, a * tile_height);
@ -147,7 +147,6 @@ pub fn collide(this: @This(), body: BodyInfo) CollisionInfo {
.size = tile_sizef, .size = tile_sizef,
}); });
} }
} }
} }
@ -173,11 +172,11 @@ pub const CollisionInfo = struct {
}; };
pub fn isSolid(tile: u8) bool { pub fn isSolid(tile: u8) bool {
return tile >= 2; return if (tile == 0) false else world.Tiles.is_solid(tile - 1);
} }
pub fn isOneWay(tile: u8) bool { pub fn isOneWay(tile: u8) bool {
return tile >= 34 and tile <= 36; return if (tile == 0) false else world.Tiles.is_oneway(tile - 1);
} }
// Debug functions // Debug functions