//////////////////////////////////////////////////////////// //~ Tile helpers i32 P_TileIdxFromTilePos(Vec2 p) { i32 x = ClampI32(FloorF32(p.x), 0, P_TilesPitch - 1); i32 y = ClampI32(FloorF32(p.y), 0, P_TilesPitch - 1); i32 result = x + (y * P_TilesPitch); return result; } //////////////////////////////////////////////////////////// //~ Prefab helpers P_PrefabFlag P_FlagsFromPrefabKind(P_PrefabKind kind) { PERSIST Readonly P_PrefabFlag flags[P_PrefabKind_COUNT] = { #define X(name, flags, ...) flags, P_PrefabsXList(X) #undef X }; P_PrefabFlag result = P_PrefabFlag_None; if (kind >= 0 && kind < countof(flags)) { result = flags[kind]; } return result; }