mirror of
https://github.com/marcrobledo/savegame-editors.git
synced 2025-04-24 16:35:10 +00:00
Replace savedata + fix offset and point issue + added skills
This commit is contained in:
parent
2e60668453
commit
bee6f76d3a
Binary file not shown.
@ -27,15 +27,15 @@
|
||||
<div id="header">
|
||||
<div id="header-top">
|
||||
<div class="row wrapper">
|
||||
<h1 class="six columns text-left"><img src="favicon.png" /> Savegame Editor <small>for Picross 3D: Round 2</small></h1>
|
||||
<div class="six columns header-buttons text-right">
|
||||
<h1 class="columns c6 text-left"><img src="favicon.png" /> Savegame Editor <small>for Picross 3D: Round 2</small></h1>
|
||||
<div class="columns c6 header-buttons text-right">
|
||||
by <a href="/">Marc Robledo</a>
|
||||
<i class="icon github"></i> <a href="https://github.com/marcrobledo/savegame-editors/tree/master/picross-3d-round-2" target="_blank">See on GitHub</a>
|
||||
<i class="icon heart"></i> <a href="https://www.paypal.me/marcrobledo/5" target="_blank" rel="nofollow">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden row wrapper" id="toolbar">
|
||||
<div class="twelve columns text-center">
|
||||
<div class="columns c12 text-center">
|
||||
<button class="close" onclick="closeFile()"><i class="icon close"></i> Close file</button>
|
||||
<button class="colored" onclick="saveChanges()"><i class="icon accept"></i> Save changes</button>
|
||||
</div>
|
||||
@ -50,32 +50,32 @@
|
||||
<h3 class="orange">Settings</h3>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="five columns">Name</div><div class="five columns" id="container-profile-name"></div>
|
||||
<div class="five columns">Background</div><div class="five columns" id="container-background"></div>
|
||||
<div class="five columns">BGM</div><div class="five columns" id="container-bgm-music"></div>
|
||||
<div class="five columns">Difficulty</div><div class="five columns" id="container-difficulty"></div>
|
||||
<div class="five columns">Help</div><div class="five columns" id="container-help"></div>
|
||||
<div class="five columns">Bomb</div><div class="five columns" id="container-bomb"></div>
|
||||
<div class="columns c5">Name</div><div class="columns c5" id="container-profile-name"></div>
|
||||
<div class="columns c5">Background</div><div class="columns c5" id="container-background"></div>
|
||||
<div class="columns c5">BGM</div><div class="columns c5" id="container-bgm-music"></div>
|
||||
<div class="columns c5">Difficulty</div><div class="columns c5" id="container-difficulty"></div>
|
||||
<div class="columns c5">Help</div><div class="columns c5" id="container-help"></div>
|
||||
<div class="columns c5">Bomb</div><div class="columns c5" id="container-bomb"></div>
|
||||
</div>
|
||||
</div>
|
||||
<h3 class="orange">Controls - Cross</h3>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="five columns">Up / Y</div><div class="five columns" id="container-cross-up"></div>
|
||||
<div class="five columns">Left / A</div><div class="five columns" id="container-cross-left"></div>
|
||||
<div class="five columns">Right / X</div><div class="five columns" id="container-cross-right"></div>
|
||||
<div class="five columns">Bottom / B</div><div class="five columns" id="container-cross-bottom"></div>
|
||||
<div class="five columns">L / R</div><div class="five columns" id="container-cross-lr"></div>
|
||||
<div class="columns c5">Up / Y</div><div class="columns c5" id="container-cross-up"></div>
|
||||
<div class="columns c5">Left / A</div><div class="columns c5" id="container-cross-left"></div>
|
||||
<div class="columns c5">Right / X</div><div class="columns c5" id="container-cross-right"></div>
|
||||
<div class="columns c5">Bottom / B</div><div class="columns c5" id="container-cross-bottom"></div>
|
||||
<div class="columns c5">L / R</div><div class="columns c5" id="container-cross-lr"></div>
|
||||
</div>
|
||||
</div>
|
||||
<h3 class="orange">Controls - Circle</h3>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="five columns">Up</div><div class="five columns" id="container-circle-up"></div>
|
||||
<div class="five columns">Left</div><div class="five columns" id="container-circle-left"></div>
|
||||
<div class="five columns">Right</div><div class="five columns" id="container-circle-right"></div>
|
||||
<div class="five columns">Bottom left</div><div class="five columns" id="container-circle-bottom-left"></div>
|
||||
<div class="five columns">Bottom right</div><div class="five columns" id="container-circle-bottom-right"></div>
|
||||
<div class="columns c5">Up</div><div class="columns c5" id="container-circle-up"></div>
|
||||
<div class="columns c5">Left</div><div class="columns c5" id="container-circle-left"></div>
|
||||
<div class="columns c5">Right</div><div class="columns c5" id="container-circle-right"></div>
|
||||
<div class="columns c5">Bottom left</div><div class="columns c5" id="container-circle-bottom-left"></div>
|
||||
<div class="columns c5">Bottom right</div><div class="columns c5" id="container-circle-bottom-right"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -83,24 +83,35 @@
|
||||
<h3 class="orange">Levels</h3>
|
||||
<div class="container">
|
||||
<div class="row" id="row-levels">
|
||||
<div class="one columns">ID</div>
|
||||
<div class="two columns">Name</div>
|
||||
<div class="two columns">Status</div>
|
||||
<div class="two columns">Difficulty</div>
|
||||
<div class="one columns">Mistakes</div>
|
||||
<div class="two columns">Time</div>
|
||||
<div class="two columns">Points</div>
|
||||
<div class="columns c1">ID</div>
|
||||
<div class="columns c2">Name</div>
|
||||
<div class="columns c2">Status</div>
|
||||
<div class="columns c2">Difficulty</div>
|
||||
<div class="columns c1">Mistakes</div>
|
||||
<div class="columns c2">Time</div>
|
||||
<div class="columns c2">Points</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tips -->
|
||||
<!-- Tutorials -->
|
||||
<h3 class="orange">Tutorials</h3>
|
||||
<div class="container">
|
||||
<div class="row" id="row-tutorials">
|
||||
<div class="one columns">ID</div>
|
||||
<div class="four columns">Name</div>
|
||||
<div class="four columns">Status</div>
|
||||
<div class="three columns">Difficulty</div>
|
||||
<div class="columns c1">ID</div>
|
||||
<div class="columns c4">Name</div>
|
||||
<div class="columns c4">Status</div>
|
||||
<div class="columns c3">Difficulty</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Skills -->
|
||||
<h3 class="orange">Skills</h3>
|
||||
<div class="container">
|
||||
<div class="row" id="row-skills">
|
||||
<div class="columns c1">ID</div>
|
||||
<div class="columns c4">Name</div>
|
||||
<div class="columns c4">Status</div>
|
||||
<div class="columns c3">Difficulty</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
*/
|
||||
var puzzles = [];
|
||||
var tutorials = [];
|
||||
var skills = [];
|
||||
var reg = /\d+/;
|
||||
|
||||
SavegameEditor={
|
||||
@ -178,12 +179,16 @@ SavegameEditor={
|
||||
setValue('levels_' + entry[0] + '_difficulty', tempFile.readU8(profileStartOffset + entry[2]+7));
|
||||
setValue('levels_' + entry[0] + '_errors', tempFile.readU8(profileStartOffset + entry[2] + 8));
|
||||
setValue('levels_' + entry[0] + '_time', tempFile.readU16(profileStartOffset + entry[2] + 12));
|
||||
setValue('levels_' + entry[0] + '_points', tempFile.readU8(profileStartOffset + entry[2] + 4));
|
||||
setValue('levels_' + entry[0] + '_points', tempFile.readU16(profileStartOffset + entry[2] + 4));
|
||||
}
|
||||
for (entry of tutorials) {
|
||||
setValue('tutorials_' + entry[0] + '_status', tempFile.readU8(profileStartOffset + entry[2]));
|
||||
setValue('tutorials_' + entry[0] + '_difficulty', tempFile.readU8(profileStartOffset + entry[2]+7));
|
||||
}
|
||||
for (entry of skills) {
|
||||
setValue('skills_' + entry[0] + '_status', tempFile.readU8(profileStartOffset + entry[2]));
|
||||
setValue('skills_' + entry[0] + '_difficulty', tempFile.readU8(profileStartOffset + entry[2]+7));
|
||||
}
|
||||
},
|
||||
_write_level_errors:function(e){
|
||||
var index = Number((e.target.id).match(reg)[0]);
|
||||
@ -204,7 +209,7 @@ SavegameEditor={
|
||||
_write_level_points:function(e){
|
||||
var index = Number((e.target.id).match(reg)[0]);
|
||||
var offset = SavegameEditor._getProfileOffset()+0x220+index*16+4;
|
||||
tempFile.writeU8(
|
||||
tempFile.writeU16(
|
||||
offset,
|
||||
getValue(e.target.id)
|
||||
);
|
||||
@ -299,6 +304,7 @@ SavegameEditor={
|
||||
var counter = 0;
|
||||
var rt = get('row-tutorials');
|
||||
var rl = get('row-levels');
|
||||
var rs = get('row-skills');
|
||||
for (var entry of data) {
|
||||
if (entry.ID.startsWith('No.')) {
|
||||
puzzles.push([counter, entry, 0x220 + counter * 16]);
|
||||
@ -314,7 +320,7 @@ SavegameEditor={
|
||||
getField('number-levels_'+counter+'_errors').addEventListener('change', SavegameEditor._write_level_errors);
|
||||
getField('number-levels_'+counter+'_time').addEventListener('change', SavegameEditor._write_level_time);
|
||||
getField('number-levels_'+counter+'_points').addEventListener('change', SavegameEditor._write_level_points);
|
||||
} else {
|
||||
} else if (entry.ID.startsWith('Tutorial')) {
|
||||
tutorials.push([counter, entry, 0x220 + counter * 16]);
|
||||
rt.append(
|
||||
col(1, span(entry.ID)),
|
||||
@ -322,6 +328,14 @@ SavegameEditor={
|
||||
col(4, select('tutorials_'+counter+'_status', SavegameEditor.Constants.LEVEL_STATUS, SavegameEditor._write_level_status)),
|
||||
col(3, select('tutorials_'+counter+'_difficulty', SavegameEditor.Constants.DIFFICULTIES, SavegameEditor._write_level_difficulty))
|
||||
);
|
||||
} else if (entry.ID.startsWith('Skill')) {
|
||||
skills.push([counter, entry, 0x220 + counter * 16]);
|
||||
rs.append(
|
||||
col(1, span(entry.ID)),
|
||||
col(4, span(entry.NAME)),
|
||||
col(4, select('skills_'+counter+'_status', SavegameEditor.Constants.LEVEL_STATUS, SavegameEditor._write_level_status)),
|
||||
col(3, select('skills_'+counter+'_difficulty', SavegameEditor.Constants.DIFFICULTIES, SavegameEditor._write_level_difficulty))
|
||||
);
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
|
@ -147,6 +147,46 @@
|
||||
"ID": "No. 030",
|
||||
"NAME": "Solar System"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 1",
|
||||
"NAME": "Continuity Search"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 2",
|
||||
"NAME": "Starting at the Ends"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 3",
|
||||
"NAME": "Out of Reach"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 4",
|
||||
"NAME": "Dual Continuity Search"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 5",
|
||||
"NAME": "Lonely Cube"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 6",
|
||||
"NAME": "Lonely Cube 2"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 7",
|
||||
"NAME": "Circles of the Ends"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 8",
|
||||
"NAME": "Triplets Divided"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 9",
|
||||
"NAME": "Squares on the Ends"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 10",
|
||||
"NAME": "Alternating"
|
||||
},
|
||||
{
|
||||
"ID": "No. 031",
|
||||
"NAME": "Skull"
|
||||
@ -235,6 +275,46 @@
|
||||
"ID": "No. 052",
|
||||
"NAME": "The Statue of Liberty"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 11",
|
||||
"NAME": "Continuity Search 2"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 12",
|
||||
"NAME": "Starting at the Ends 2"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 13",
|
||||
"NAME": "Dual Dilemma"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 14",
|
||||
"NAME": "Dual Continuity Search 2"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 15",
|
||||
"NAME": "Starting at the Ends 3"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 16",
|
||||
"NAME": "Colorful Crossing"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 17",
|
||||
"NAME": "Positive Painting"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 18",
|
||||
"NAME": "The Process of Elimination"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 19",
|
||||
"NAME": "Logical Leap"
|
||||
},
|
||||
{
|
||||
"ID": "Skill 20",
|
||||
"NAME": "Lonely Cube 3"
|
||||
},
|
||||
{
|
||||
"ID": "No. 053",
|
||||
"NAME": "Pliers"
|
||||
@ -295,10 +375,6 @@
|
||||
"ID": "No. 067",
|
||||
"NAME": "Loading Dock"
|
||||
},
|
||||
{
|
||||
"ID": "No. 068",
|
||||
"NAME": "Royal Carriage"
|
||||
},
|
||||
{
|
||||
"ID": "No. 069",
|
||||
"NAME": "Part A"
|
||||
@ -535,10 +611,6 @@
|
||||
"ID": "No. 127",
|
||||
"NAME": "Marlin"
|
||||
},
|
||||
{
|
||||
"ID": "No. 128",
|
||||
"NAME": "Japanese Castle"
|
||||
},
|
||||
{
|
||||
"ID": "No. 129",
|
||||
"NAME": "Part A"
|
||||
@ -755,10 +827,6 @@
|
||||
"ID": "No. 182",
|
||||
"NAME": "Horse"
|
||||
},
|
||||
{
|
||||
"ID": "No. 183",
|
||||
"NAME": "Gulliver"
|
||||
},
|
||||
{
|
||||
"ID": "No. 184",
|
||||
"NAME": "Part A"
|
||||
@ -983,10 +1051,6 @@
|
||||
"ID": "No. 239",
|
||||
"NAME": "Totem Pole"
|
||||
},
|
||||
{
|
||||
"ID": "No. 240",
|
||||
"NAME": "Pit Stop"
|
||||
},
|
||||
{
|
||||
"ID": "No. 241",
|
||||
"NAME": "Part A"
|
||||
@ -1335,10 +1399,6 @@
|
||||
"ID": "No. 327",
|
||||
"NAME": "Fox"
|
||||
},
|
||||
{
|
||||
"ID": "No. 328",
|
||||
"NAME": "Circus Train"
|
||||
},
|
||||
{
|
||||
"ID": "No. 329",
|
||||
"NAME": "Part A"
|
||||
|
Loading…
x
Reference in New Issue
Block a user