mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-07 10:34:46 -04:00
Added times to runtime errors. Don't load ThangTypes for Thangs that don't exist on the first frame of the world.
This commit is contained in:
parent
f653aa3375
commit
c1f9d51b37
5 changed files with 18 additions and 7 deletions
app
lib
models
views/play
|
@ -136,7 +136,7 @@ module.exports = class LevelLoader extends CocoClass
|
|||
@initWorld()
|
||||
@supermodel.clearMaxProgress()
|
||||
return if @headless and not @editorMode
|
||||
thangsToLoad = _.uniq( (t.spriteName for t in @world.thangs) )
|
||||
thangsToLoad = _.uniq( (t.spriteName for t in @world.thangs when t.exists) )
|
||||
nameModelTuples = ([thangType.get('name'), thangType] for thangType in @thangNames.models)
|
||||
nameModelMap = _.zipObject nameModelTuples
|
||||
@spriteSheetsToBuild = []
|
||||
|
|
|
@ -425,6 +425,9 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
oldHeight = parseInt @canvas.attr('height'), 10
|
||||
newWidth = @canvas.width()
|
||||
newHeight = @canvas.height()
|
||||
#if InstallTrigger? # Firefox rendering performance goes down as canvas size goes up
|
||||
# newWidth = Math.min 924, newWidth
|
||||
# newHeight = Math.min 589, newHeight
|
||||
@canvas.attr width: newWidth, height: newHeight
|
||||
@stage.scaleX *= newWidth / oldWidth
|
||||
@stage.scaleY *= newHeight / oldHeight
|
||||
|
|
|
@ -26,7 +26,7 @@ module.exports = class ThangType extends CocoModel
|
|||
@buildActions()
|
||||
@spriteSheets = {}
|
||||
@building = {}
|
||||
|
||||
|
||||
isFullyLoaded: ->
|
||||
# TODO: Come up with a better way to identify when the model doesn't have everything needed to build the sprite. ie when it's a projection without all the required data.
|
||||
return @get('actions') or @get('raster') # needs one of these two things
|
||||
|
@ -154,13 +154,13 @@ module.exports = class ThangType extends CocoModel
|
|||
@builder.on 'complete', @onBuildSpriteSheetComplete, @, true, key
|
||||
return true
|
||||
spriteSheet = @builder.build()
|
||||
console.debug "Built #{@get('name')} in #{new Date().getTime() - @t0}ms."
|
||||
console.debug "Built #{@get('name')}#{if @options.portraitOnly then ' portrait' else ''} in #{new Date().getTime() - @t0}ms."
|
||||
@spriteSheets[key] = spriteSheet
|
||||
delete @building[key]
|
||||
spriteSheet
|
||||
|
||||
onBuildSpriteSheetComplete: (e, key) ->
|
||||
console.log "Built #{@get('name')} async in #{new Date().getTime() - @builder.t0}ms." if @builder
|
||||
console.log "Built #{@get('name')}#{if @options.portraitOnly then ' portrait' else ''} async in #{new Date().getTime() - @builder.t0}ms." if @builder
|
||||
buildQueue = buildQueue.slice(1)
|
||||
buildQueue[0].t0 = new Date().getTime() if buildQueue[0]
|
||||
buildQueue[0]?.buildAsync()
|
||||
|
|
|
@ -32,6 +32,7 @@ module.exports = class MyMatchesTabView extends CocoView
|
|||
return @finishRendering() unless ids.length
|
||||
|
||||
success = (nameMap) =>
|
||||
return if @destroyed
|
||||
for session in @sessions.models
|
||||
for match in session.get('matches') or []
|
||||
opponent = match.opponents[0]
|
||||
|
@ -178,10 +179,10 @@ module.exports = class MyMatchesTabView extends CocoView
|
|||
|
||||
@setRankingButtonText(button, 'submitting')
|
||||
success = =>
|
||||
@setRankingButtonText(button, 'submitted')
|
||||
@setRankingButtonText(button, 'submitted') unless @destroyed
|
||||
failure = (jqxhr, textStatus, errorThrown) =>
|
||||
console.log jqxhr.responseText
|
||||
@setRankingButtonText(button, 'failed')
|
||||
@setRankingButtonText(button, 'failed') unless @destroyed
|
||||
transpiledCode = @transpileSession session
|
||||
|
||||
ajaxData =
|
||||
|
|
|
@ -18,7 +18,14 @@ module.exports = class ProblemAlertView extends View
|
|||
getRenderData: (context={}) ->
|
||||
context = super context
|
||||
format = (s) -> s?.replace('<', '<').replace('>', '>').replace("\n", "<br>")
|
||||
context.message = format @problem.aetherProblem.message
|
||||
message = @problem.aetherProblem.message
|
||||
age = @problem.aetherProblem.userInfo.age
|
||||
if age?
|
||||
if /^Line \d+:/.test message
|
||||
message = message.replace /^(Line \d+)/, "$1, time #{age.toFixed(1)}"
|
||||
else
|
||||
message = "Time #{age.toFixed(1)}: #{message}"
|
||||
context.message = format message
|
||||
context.hint = format @problem.aetherProblem.hint
|
||||
context
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue