mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
redo dif building and handle custom stuff
This commit is contained in:
parent
152440c233
commit
8dc630c458
5 changed files with 143 additions and 140 deletions
|
|
@ -305,7 +305,6 @@ class DifBuilder {
|
||||||
difresource.acquire();
|
difresource.acquire();
|
||||||
var dif = difresource.resource;
|
var dif = difresource.resource;
|
||||||
var geo = so == -1 ? dif.interiors[0] : dif.subObjects[so];
|
var geo = so == -1 ? dif.interiors[0] : dif.subObjects[so];
|
||||||
var hulls = geo.convexHulls;
|
|
||||||
var triangles = [];
|
var triangles = [];
|
||||||
var textures = [];
|
var textures = [];
|
||||||
var collider = new CollisionEntity(itr);
|
var collider = new CollisionEntity(itr);
|
||||||
|
|
@ -323,11 +322,8 @@ class DifBuilder {
|
||||||
var vertexBuckets = new Map<Point3F, Array<VertexBucket>>();
|
var vertexBuckets = new Map<Point3F, Array<VertexBucket>>();
|
||||||
var edges = [];
|
var edges = [];
|
||||||
var colliderSurfaces = [];
|
var colliderSurfaces = [];
|
||||||
for (i in 0...hulls.length) {
|
for (i in 0...geo.surfaces.length) {
|
||||||
var hullTris = [];
|
var surfaceindex = i;
|
||||||
var hull = hulls[i];
|
|
||||||
for (j in hull.surfaceStart...(hull.surfaceStart + hull.surfaceCount)) {
|
|
||||||
var surfaceindex = geo.hullSurfaceIndices[j];
|
|
||||||
var surface = geo.surfaces[surfaceindex];
|
var surface = geo.surfaces[surfaceindex];
|
||||||
if (surface == null)
|
if (surface == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -412,7 +408,6 @@ class DifBuilder {
|
||||||
tri.uv2 = uv2;
|
tri.uv2 = uv2;
|
||||||
tri.uv3 = uv3;
|
tri.uv3 = uv3;
|
||||||
triangles.push(tri);
|
triangles.push(tri);
|
||||||
hullTris.push(tri);
|
|
||||||
var materialName = stripTexName(texture).toLowerCase();
|
var materialName = stripTexName(texture).toLowerCase();
|
||||||
var hasMaterialInfo = materialDict.exists(materialName);
|
var hasMaterialInfo = materialDict.exists(materialName);
|
||||||
if (hasMaterialInfo) {
|
if (hasMaterialInfo) {
|
||||||
|
|
@ -462,7 +457,6 @@ class DifBuilder {
|
||||||
collider.addSurface(colliderSurface);
|
collider.addSurface(colliderSurface);
|
||||||
colliderSurfaces.push(colliderSurface);
|
colliderSurfaces.push(colliderSurface);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
var edgeMap:Map<Int, TriangleEdge> = new Map();
|
var edgeMap:Map<Int, TriangleEdge> = new Map();
|
||||||
var internalEdges:Map<Int, Bool> = new Map();
|
var internalEdges:Map<Int, Bool> = new Map();
|
||||||
var difEdges:Map<Int, Edge> = [];
|
var difEdges:Map<Int, Edge> = [];
|
||||||
|
|
|
||||||
|
|
@ -260,7 +260,7 @@ class MarbleGame {
|
||||||
canvas.setContent(new MainMenuGui());
|
canvas.setContent(new MainMenuGui());
|
||||||
#end
|
#end
|
||||||
} else {
|
} else {
|
||||||
if (!world.mission.isClaMission) {
|
if (!world.mission.isClaMission && !world.mission.isCustom) {
|
||||||
PlayMissionGui.currentCategoryStatic = world.mission.type;
|
PlayMissionGui.currentCategoryStatic = world.mission.type;
|
||||||
}
|
}
|
||||||
var pmg = new PlayMissionGui();
|
var pmg = new PlayMissionGui();
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ class Mission {
|
||||||
public var isClaMission:Bool;
|
public var isClaMission:Bool;
|
||||||
public var game:String;
|
public var game:String;
|
||||||
public var hasEgg:Bool;
|
public var hasEgg:Bool;
|
||||||
|
public var isCustom:Bool;
|
||||||
|
|
||||||
var next:Mission;
|
var next:Mission;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,14 @@ class MissionList {
|
||||||
var misParser = new MisParser(file.getText());
|
var misParser = new MisParser(file.getText());
|
||||||
var mInfo = misParser.parseMissionInfo();
|
var mInfo = misParser.parseMissionInfo();
|
||||||
var mission = Mission.fromMissionInfo(file.path, mInfo);
|
var mission = Mission.fromMissionInfo(file.path, mInfo);
|
||||||
|
if (game != "custom")
|
||||||
mission.game = game;
|
mission.game = game;
|
||||||
|
else if (mInfo.game != null && mInfo.game != "")
|
||||||
|
mission.game = mInfo.game.toLowerCase();
|
||||||
|
else
|
||||||
|
mission.game = game; // Last case scenario
|
||||||
|
if (game == "custom")
|
||||||
|
mission.isCustom = true;
|
||||||
// do egg thing
|
// do egg thing
|
||||||
if (StringTools.contains(file.getText().toLowerCase(), 'datablock = "easteregg"')) { // Ew
|
if (StringTools.contains(file.getText().toLowerCase(), 'datablock = "easteregg"')) { // Ew
|
||||||
mission.hasEgg = true;
|
mission.hasEgg = true;
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ class MissionElementScriptObject extends MissionElementBase {
|
||||||
var ultimatetime:String;
|
var ultimatetime:String;
|
||||||
var music:String;
|
var music:String;
|
||||||
var alarmstarttime:String;
|
var alarmstarttime:String;
|
||||||
|
var game:String;
|
||||||
|
|
||||||
public function new() {
|
public function new() {
|
||||||
_type = MissionElementType.ScriptObject;
|
_type = MissionElementType.ScriptObject;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue