mirror of
https://github.com/marcrobledo/savegame-editors.git
synced 2025-04-24 16:35:10 +00:00
Added competition and walking counter
This commit is contained in:
parent
762a325fbe
commit
f422f09506
@ -36,7 +36,17 @@
|
||||
<div class="columns c6"><label class="update-name" for="input-petX-personality">Personality</label></div>
|
||||
<div class="columns c6"><input class="update-name" id="input-petX-personality" type="text" class="fw" style="width:90%;" readonly/></div>
|
||||
<div class="columns c8"><label class="update-name" for="number-petX-level">Level</label></div>
|
||||
<div class="columns c4"><input class="update-name fw text-right" id="number-petX-level" type="text" /></div>
|
||||
<div class="columns c4"><input class="update-name fw text-right" id="number-petX-level" type="text" /></div>
|
||||
|
||||
<div class="row container update-name" id="petX_comp_outer" style="width:100%;padding-left:0;padding-right:0">
|
||||
<h3 class="orange" style="width:100%;">Times played (max 2 per day)</h3>
|
||||
<div class="columns c8"><label class="update-name" for="number-petX-disc-played">Disc Competition</label></div>
|
||||
<div class="update-name columns c4" data-global="1" data-var="PETX_COMP_DISC_PLAYED", data-size="8"><input class="update-name fw text-right" id="number-petX-disc-played" type="text" /></div>
|
||||
<div class="columns c8"><label class="update-name" for="number-petX-lure-played">Lure Coursing</label></div>
|
||||
<div class="update-name columns c4" data-global="1" data-var="PETX_COMP_LURE_PLAYED", data-size="8"><input class="update-name fw text-right" id="number-petX-lure-played" type="text" /></div>
|
||||
<div class="columns c8"><label class="update-name" for="number-petX-obedience-played">Obedience Trial</label></div>
|
||||
<div class="update-name columns c4" data-global="1" data-var="PETX_COMP_OBED_PLAYED", data-size="8"><input class="update-name fw text-right" id="number-petX-obed-played" type="text" /></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -275,6 +285,10 @@
|
||||
<div class="columns c8"><label for="number-streetpass-met">People Met</label></div>
|
||||
<div class="columns c4"><input id="number-streetpass-met" type="text" class="fw text-right" /></div>
|
||||
</div>
|
||||
<div class="row" id="row-walking-counter">
|
||||
<div class="columns c7"><label for="input-walking-counter">Walking Counter</label></div>
|
||||
<div class="columns c4"><input id="number-walking-counter" type="text" class="fw text-right" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<h3 class="orange">Pets</h3>
|
||||
<div id="pet_tabs"></div>
|
||||
|
@ -11,6 +11,12 @@
|
||||
height: 50px;
|
||||
display: inline-table;
|
||||
text-align: center;
|
||||
transition: background-color .15s;
|
||||
}
|
||||
|
||||
#pet_tabs input:not(:checked) + label:hover {
|
||||
background: #6e7177;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pet_label .sprite {
|
||||
|
@ -60,10 +60,29 @@ SavegameEditor={
|
||||
PET_BREED_STYLE_OFFSET: 0x34, // 52 = Hairstyle
|
||||
PET_BREED_EYE_COLOR_OFFSET: 0x35, // 53 = Eye Color (Cats: 0=gray, 1=yellow, 2=blue; Dogs: 255)
|
||||
PET_BREED_COLOR_OFFSET: 0x36, // 54 = Fur Color
|
||||
PET1_COMP_DISC_PLAYED: 0x24E,
|
||||
PET1_COMP_OBED_PLAYED: 0x24F,
|
||||
PET1_COMP_LURE_PLAYED: 0x250,
|
||||
PET2_COMP_DISC_PLAYED: 0x251,
|
||||
PET2_COMP_OBED_PLAYED: 0x252,
|
||||
PET2_COMP_LURE_PLAYED: 0x253,
|
||||
PET3_COMP_DISC_PLAYED: 0x254,
|
||||
PET3_COMP_OBED_PLAYED: 0x255,
|
||||
PET3_COMP_LURE_PLAYED: 0x256,
|
||||
PET4_COMP_DISC_PLAYED: 0x257,
|
||||
PET4_COMP_OBED_PLAYED: 0x258,
|
||||
PET4_COMP_LURE_PLAYED: 0x259,
|
||||
PET5_COMP_DISC_PLAYED: 0x25A,
|
||||
PET5_COMP_OBED_PLAYED: 0x25B,
|
||||
PET5_COMP_LURE_PLAYED: 0x25C,
|
||||
PET6_COMP_DISC_PLAYED: 0x25D,
|
||||
PET6_COMP_OBED_PLAYED: 0x25E,
|
||||
PET6_COMP_LURE_PLAYED: 0x25F,
|
||||
PET_PERSONALITIES_OFFSET_DOG1: 0x1F6,
|
||||
PET_PERSONALITIES_OFFSET_DOG2: 0x1FA,
|
||||
PET_PERSONALITIES_OFFSET_CAT1: 0x1EE,
|
||||
PET_PERSONALITIES_OFFSET_CAT2: 0x1F2,
|
||||
WALKING_COUNTER_OFFSET: 0x215
|
||||
},
|
||||
|
||||
_write_money:function(){
|
||||
@ -84,6 +103,12 @@ SavegameEditor={
|
||||
getValue('pedometer')
|
||||
);
|
||||
},
|
||||
_write_walking_counter:function(){
|
||||
tempFile.writeU8(
|
||||
SavegameEditor.Constants.WALKING_COUNTER_OFFSET,
|
||||
getValue('walking-counter')
|
||||
);
|
||||
},
|
||||
_write_supply_amount:function(e){
|
||||
tempFile.writeU8(
|
||||
Number(e.target.dataset.offset),
|
||||
@ -101,16 +126,20 @@ SavegameEditor={
|
||||
|
||||
document.getElementsByClassName('pet' + index + '_name')[0].innerText = getValue(e.target.id);
|
||||
},
|
||||
_write_u_number:function(e, n, o){
|
||||
_write_u_number:function(e, n, o, g){
|
||||
var index = Number((e.target.id).match(reg)[0]);
|
||||
var offset = SavegameEditor.Constants.PET_OFFSET[index-1]+SavegameEditor.Constants[o];
|
||||
var pet_offset = SavegameEditor.Constants.PET_OFFSET[index-1];
|
||||
if (g) {
|
||||
pet_offset = 0;
|
||||
}
|
||||
var offset = pet_offset+SavegameEditor.Constants[o];
|
||||
tempFile['writeU' + n](
|
||||
offset,
|
||||
Number(getValue(e.target.id))
|
||||
);
|
||||
},
|
||||
_write_pet_value:function(e){
|
||||
SavegameEditor._write_u_number(e, Number(e.target.parentElement.dataset.size), e.target.parentElement.dataset.var);
|
||||
SavegameEditor._write_u_number(e, Number(e.target.parentElement.dataset.size), e.target.parentElement.dataset.var, e.target.parentElement.dataset.global);
|
||||
},
|
||||
_getPetData(petOffset, value, size) {
|
||||
return tempFile['readU' + (size || 8)](SavegameEditor.Constants.PET_OFFSET[petOffset]+SavegameEditor.Constants[value]);
|
||||
@ -192,16 +221,19 @@ SavegameEditor={
|
||||
setValue('pedometer', tempFile.readU32(SavegameEditor.Constants.PEDOMETER_OFFSET));
|
||||
setNumericRange('pedometer', 0, 9999999);
|
||||
|
||||
setValue('walking-counter', tempFile.readU8(SavegameEditor.Constants.WALKING_COUNTER_OFFSET));
|
||||
setNumericRange('walking-counter', 0, 255);
|
||||
|
||||
setNumericRange('owner-points', 0, 99999);
|
||||
var points = tempFile.readU32(SavegameEditor.Constants.OWNER_POINTS_OFFSET);
|
||||
for (var j = 0; j < level_borders.length; j++) {
|
||||
if (points >= level_borders[j][0] && points <= level_borders[j][1]) {
|
||||
setValue('owner-points', j);
|
||||
var owner_points = tempFile.readU32(SavegameEditor.Constants.OWNER_POINTS_OFFSET);
|
||||
for (var k = 0; k < level_borders.length; k++) {
|
||||
if (owner_points >= level_borders[k][0] && owner_points <= level_borders[k][1]) {
|
||||
setValue('owner-points', k);
|
||||
break;
|
||||
}
|
||||
}
|
||||
var level_ele = get('number-owner-points');
|
||||
level_ele.addEventListener('change', SavegameEditor._mark_as_changed);
|
||||
var level_ele_ = get('number-owner-points');
|
||||
level_ele_.addEventListener('change', SavegameEditor._mark_as_changed);
|
||||
|
||||
var a = new Date (Number(tempFile.readU32(SavegameEditor.Constants.LASTSAVED_OFFSET)) * 1000);
|
||||
setValue('lastsaved', a.toLocaleString("en-GB", {
|
||||
@ -218,6 +250,7 @@ SavegameEditor={
|
||||
pet_tabs.innerText = '';
|
||||
var pet_tabs_content_seperator = document.createElement('div');
|
||||
pet_tabs.appendChild(pet_tabs_content_seperator);
|
||||
var first_pet = true;
|
||||
for (var i=1; i<7; i++){
|
||||
var pet_present = tempFile.readU8(SavegameEditor.Constants.PET_OFFSET[i-1]) > 0;
|
||||
if (!pet_present) {continue;}
|
||||
@ -225,7 +258,10 @@ SavegameEditor={
|
||||
pet_tab_input.name = 'pet_tabgroup';
|
||||
pet_tab_input.type = 'radio';
|
||||
pet_tab_input.id = 'pet_tab' + i;
|
||||
pet_tab_input.checked = i === 1;
|
||||
if (first_pet) {
|
||||
pet_tab_input.checked = true;
|
||||
first_pet = false;
|
||||
}
|
||||
pet_tab_input.className = 'pet_tab';
|
||||
pet_tabs.insertBefore(pet_tab_input, pet_tabs_content_seperator);
|
||||
var pet_tab_label = document.createElement('label');
|
||||
@ -238,9 +274,13 @@ SavegameEditor={
|
||||
for (var ele of templateClone.querySelectorAll('.update-name')) {
|
||||
if ((ele.id || '').includes('petX')) {
|
||||
ele.id = ele.id.replaceAll('petX', 'pet' + i);
|
||||
} else if (ele.getAttribute('for')) {
|
||||
}
|
||||
if (ele.getAttribute('for')) {
|
||||
ele.setAttribute('for', ele.getAttribute('for').replaceAll('petX', 'pet' + i));
|
||||
}
|
||||
if ((ele.dataset && ele.dataset.var || '').includes('PETX')) {
|
||||
ele.dataset.var = ele.dataset.var.replaceAll('PETX', 'PET' + i);
|
||||
}
|
||||
}
|
||||
var breed = SavegameEditor._getPetData(i-1, 'PET_BREED_OFFSET');
|
||||
var isDog = true;
|
||||
@ -308,6 +348,17 @@ SavegameEditor={
|
||||
pet_tab_label.appendChild(pet_tab_label_name);
|
||||
setValue('pet' + i + '-gender', SavegameEditor._getPetData(i-1, 'PET_GENDER_OFFSET'));
|
||||
get('input-pet' + i + '-name').addEventListener('change', SavegameEditor._write_pet_name);
|
||||
|
||||
setNumericRange('pet' + i + '-disc-played', 0, 2);
|
||||
setValue('pet' + i + '-disc-played', tempFile.readU8(SavegameEditor.Constants['PET' + i + '_COMP_DISC_PLAYED']));
|
||||
get('number-pet' + i + '-disc-played').addEventListener('change', SavegameEditor._write_pet_value);
|
||||
setNumericRange('pet' + i + '-lure-played', 0, 2);
|
||||
setValue('pet' + i + '-lure-played', tempFile.readU8(SavegameEditor.Constants['PET' + i + '_COMP_LURE_PLAYED']));
|
||||
get('number-pet' + i + '-lure-played').addEventListener('change', SavegameEditor._write_pet_value);
|
||||
setNumericRange('pet' + i + '-obed-played', 0, 2);
|
||||
setValue('pet' + i + '-obed-played', tempFile.readU8(SavegameEditor.Constants['PET' + i + '_COMP_OBED_PLAYED']));
|
||||
get('number-pet' + i + '-obed-played').addEventListener('change', SavegameEditor._write_pet_value);
|
||||
|
||||
var personality = window.personalities[SavegameEditor._getPetData(i-1, 'PET_PERSONALITIES_OFFSET_' + (isDog ? 'DOG' : 'CAT') + '1', 8)][SavegameEditor._getPetData(i-1, 'PET_PERSONALITIES_OFFSET_' + (isDog ? 'DOG' : 'CAT') + '2', 8)];
|
||||
setValue('pet' + i + '-personality', personality[Number(SavegameEditor._getPetData(i-1, 'PET_GENDER_OFFSET'))]);
|
||||
|
||||
@ -323,7 +374,7 @@ SavegameEditor={
|
||||
level_ele.dataset.is_dog = isDog;
|
||||
level_ele.addEventListener('change', SavegameEditor._mark_as_changed);
|
||||
}
|
||||
pet_tabs.removeChild(pet_tabs_content_seperator)
|
||||
pet_tabs.removeChild(pet_tabs_content_seperator);
|
||||
},
|
||||
|
||||
/* save function */
|
||||
|
Loading…
x
Reference in New Issue
Block a user