Fix some pathedinterior bugs and aesthetic gui shit

This commit is contained in:
RandomityGuy 2021-06-16 14:01:48 +05:30
parent e562b8be0b
commit 31a57fade7
5 changed files with 34 additions and 4 deletions

View file

@ -52,7 +52,7 @@ class Main extends hxd.App {
override function init() { override function init() {
super.init(); super.init();
var ltr = File.getContent("data/missions/advanced/acrobat.mis"); var ltr = File.getContent("data/missions/advanced/survival.mis");
var mfp = new MisParser(ltr); var mfp = new MisParser(ltr);
var mis = mfp.parse(); var mis = mfp.parse();

View file

@ -198,6 +198,12 @@ class MarbleWorld extends Scheduler {
this.bonusTime = 0; this.bonusTime = 0;
this.outOfBounds = false; this.outOfBounds = false;
this.finishTime = null; this.finishTime = null;
this.helpTextTimeState = Math.NEGATIVE_INFINITY;
this.alertTextTimeState = Math.NEGATIVE_INFINITY;
if (this.totalGems > 0) {
this.gemCount = 0;
this.playGui.formatGemCounter(this.gemCount, this.totalGems);
}
var startquat = this.getStartPositionAndOrientation(); var startquat = this.getStartPositionAndOrientation();
@ -215,7 +221,7 @@ class MarbleWorld extends Scheduler {
var missionInfo:MissionElementScriptObject = cast this.mission.root.elements.filter((element) -> element._type == MissionElementType.ScriptObject var missionInfo:MissionElementScriptObject = cast this.mission.root.elements.filter((element) -> element._type == MissionElementType.ScriptObject
&& element._name == "MissionInfo")[0]; && element._name == "MissionInfo")[0];
if (missionInfo.starthelptext != "") if (missionInfo.starthelptext != null)
displayHelp(missionInfo.starthelptext); // Show the start help text displayHelp(missionInfo.starthelptext); // Show the start help text
for (shape in dtsObjects) for (shape in dtsObjects)
@ -285,8 +291,10 @@ class MarbleWorld extends Scheduler {
// if (pathedInterior.hasCollision) // if (pathedInterior.hasCollision)
// this.physics.addInterior(pathedInterior); // this.physics.addInterior(pathedInterior);
for (trigger in pathedInterior.triggers) for (trigger in pathedInterior.triggers) {
this.triggers.push(trigger); this.triggers.push(trigger);
this.collisionWorld.addEntity(trigger.collider);
}
return; return;
} }

View file

@ -108,7 +108,10 @@ class PathedInterior extends InteriorObject {
marker.msToNext = MisParser.parseNumber(x.mstonext) / 1000; marker.msToNext = MisParser.parseNumber(x.mstonext) / 1000;
marker.smoothingType = x.smoothingtype; marker.smoothingType = x.smoothingtype;
marker.position = MisParser.parseVector3(x.position); marker.position = MisParser.parseVector3(x.position);
marker.position.x = -marker.position.x;
marker.rotation = MisParser.parseRotation(x.rotation); marker.rotation = MisParser.parseRotation(x.rotation);
marker.rotation.x = -marker.rotation.x;
marker.rotation.w = -marker.rotation.w;
return marker; return marker;
}); });

View file

@ -32,6 +32,7 @@ class PlayGui {
var gemImageScene:h3d.scene.Scene; var gemImageScene:h3d.scene.Scene;
var gemImageSceneTarget:Texture; var gemImageSceneTarget:Texture;
var gemImageObject:DtsObject; var gemImageObject:DtsObject;
var gemImageSceneTargetBitmap:Bitmap;
var powerupBox:Bitmap; var powerupBox:Bitmap;
var powerupImageScene:h3d.scene.Scene; var powerupImageScene:h3d.scene.Scene;
@ -144,7 +145,7 @@ class PlayGui {
gemImageSceneTarget = new Texture(60, 60, [Target]); gemImageSceneTarget = new Texture(60, 60, [Target]);
gemImageSceneTarget.depthBuffer = new DepthBuffer(60, 60); gemImageSceneTarget.depthBuffer = new DepthBuffer(60, 60);
var gemImageSceneTargetBitmap = new Bitmap(Tile.fromTexture(gemImageSceneTarget), scene2d); gemImageSceneTargetBitmap = new Bitmap(Tile.fromTexture(gemImageSceneTarget), scene2d);
gemImageSceneTargetBitmap.x = -8; gemImageSceneTargetBitmap.x = -8;
gemImageSceneTargetBitmap.y = -8; gemImageSceneTargetBitmap.y = -8;
@ -278,6 +279,20 @@ class PlayGui {
} }
public function formatGemCounter(collected:Int, total:Int) { public function formatGemCounter(collected:Int, total:Int) {
if (total == 0) {
for (number in gemCountNumbers) {
number.visible = false;
}
gemCountSlash.visible = false;
gemImageSceneTargetBitmap.visible = false;
} else {
for (number in gemCountNumbers) {
number.visible = true;
}
gemCountSlash.visible = true;
gemImageSceneTargetBitmap.visible = true;
}
var totalTenths = Math.floor(total / 10); var totalTenths = Math.floor(total / 10);
var totalOnes = total % 10; var totalOnes = total % 10;

View file

@ -67,4 +67,8 @@ abstract class PowerUp extends DtsObject {
public abstract function pickUp():Bool; public abstract function pickUp():Bool;
public abstract function use(timeState:TimeState):Void; public abstract function use(timeState:TimeState):Void;
public override function reset() {
this.lastPickUpTime = Math.NEGATIVE_INFINITY;
}
} }