diff --git a/src/Radar.hx b/src/Radar.hx index 95b7f7e6..dea3e37d 100644 --- a/src/Radar.hx +++ b/src/Radar.hx @@ -19,7 +19,7 @@ class Radar { var g:Graphics; - var marbleNameTexts:Array; + var marbleNameTexts:Map; public var ellipseScreenFraction = new Vector(0.79, 0.9); public var fullArrowLength = 60.0; @@ -62,7 +62,7 @@ class Radar { renderArrow(@:privateAccess level.endPad.getAbsPos().getPosition(), 0xE6E6E6); } var fadeDistance = level.scene.camera.zFar * 0.1; - for (marbleName in marbleNameTexts) { + for (marble => marbleName in marbleNameTexts) { if (marbleName != null) marbleName.alpha = 0; } @@ -429,30 +429,24 @@ class Radar { } function renderName(pos:Vector, marble:Marble, opacity:Float) { - var marbleId = @:privateAccess marble.connection.getMarbleId(); - while (marbleNameTexts.length <= marbleId) - marbleNameTexts.push(null); - if (marbleNameTexts[marbleId] == null) { + if (!marbleNameTexts.exists(marble)) { var arialb14fontdata = ResourceLoader.getFileEntry("data/font/Arial Bold.fnt"); var arialb14b = new BitmapFont(arialb14fontdata.entry); @:privateAccess arialb14b.loader = ResourceLoader.loader; var arialBold14 = arialb14b.toSdfFont(cast 16 * Settings.uiScale, MultiChannel); - - marbleNameTexts[marbleId] = new h2d.Text(arialBold14, scene2d); - marbleNameTexts[marbleId].textColor = 0xFFFF00; + var txt = new h2d.Text(arialBold14, scene2d); + marbleNameTexts.set(marble, txt); + txt.textColor = 0xFFFF00; } - var textObj = marbleNameTexts[marbleId]; + var textObj = marbleNameTexts.get(marble); textObj.text = @:privateAccess marble.connection.getName(); textObj.setPosition(pos.x - textObj.textWidth / 2, pos.y - textObj.textHeight); textObj.alpha = opacity; } function dontRenderName(marble:Marble) { - var marbleId = @:privateAccess marble.connection.getMarbleId(); - while (marbleNameTexts.length <= marbleId) - marbleNameTexts.push(null); - if (marbleNameTexts[marbleId] != null) { - marbleNameTexts[marbleId].alpha = 0; + if (marbleNameTexts.exists(marble)) { + marbleNameTexts.get(marble).alpha = 0; } } } diff --git a/src/shapes/MegaMarble.hx b/src/shapes/MegaMarble.hx index d1cbea23..c79baa1e 100644 --- a/src/shapes/MegaMarble.hx +++ b/src/shapes/MegaMarble.hx @@ -43,7 +43,7 @@ class MegaMarble extends PowerUp { public function use(marble:Marble, timeState:TimeState) { marble.enableMegaMarble(timeState); - var boost = marble.currentUp.multiply(5); + var boost = marble.currentUp.multiply(5 / marble.getMass()); marble.velocity.load(marble.velocity.add(boost)); this.level.deselectPowerUp(marble); if (this.level.marble == marble && @:privateAccess !marble.isNetUpdate)