Archived
1
0
This repository has been archived on 2025-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
PPGDoTEditor/PPGEditor.coffee
2014-07-06 04:27:42 +02:00

62 lines
2.2 KiB
CoffeeScript

window.loadSavegame = ->
data = $.trim($('#file').val())
console.log 'Loaded %i characters.', data.length
fields = data.split ';'
console.log 'Found %i fields.', fields.length
savedata = {}
for own i, field of fields
[name, value, type] = field.split ':'
switch type
when 'B' then value = (value is 'T')
when 'I' then value = parseInt value
when 'F' then value = parseFloat value
when 'L' then value = parseInt value
savedata[name] = {
'value': value
'type': type
}
console.log 'Savegame data: %o', savedata
missing = 0
for own field, value of savedata
html = $('#'+field)
if html.length is 0
console.log 'Missing HTML field for: %s (%s:%o)', field, value.type, value.value
missing++
continue
element = html.get(0).tagName
# console.log 'HTML: %o %s', html, html.get(0).tagName
switch element
when 'INPUT'
type = html.prop 'type'
switch type
when 'checkbox'
html.attr 'checked', value.value
html.attr 'data-type', value.type
else
html.val value.value
html.attr 'data-type', value.type
else
html.val value.value
html.attr 'data-type', value.type
console.log '%i HTML fields were missing', missing
window.copySavegame = (src, trg) ->
srcFields = $('*[id^=S'+src+']')
console.log 'Source objects: %o', srcFields
for i in [0..srcFields.length-1]
srcEl = srcFields.eq(i)
srcId = srcEl.attr('id')
srcType = srcFields.eq(i).prop 'type'
trgId = srcId.replace 'S'+src, 'S'+trg
trgEl = $('#'+trgId)
console.log 'Copy %o to %o', srcEl, trgEl
switch srcType
when 'checkbox'
trgEl.attr 'checked', srcEl.attr 'checked'
else
trgEl.val srcEl.val()
console.log 'All done.'
window.generateSavegame = ->
console.log 'Creating savegame from fields.'