Interim parse update and load/save

Offsets are placeholder for now until cylindricalearth is updated with the new offset parse
This commit is contained in:
Kurt
2020-07-29 19:21:20 -07:00
parent 833483027f
commit da06fd4c46
24 changed files with 2824 additions and 1920 deletions

View File

@@ -111,6 +111,10 @@ public static class FileHashRevision
}),
});
#endregion
#region REVISION 1.2.0
private const uint REVISION_120_ID = 2;
private const int REV_120_MAIN_SAVE_SIZE = 0xACECD0;
private const int REV_120_PERSONAL_SAVE_SIZE = 0x6D6C0;
@@ -161,6 +165,10 @@ public static class FileHashRevision
}),
});
#endregion
#region REVISION 1.3.0
private const uint REVISION_130_ID = 3;
private const int REV_130_MAIN_SAVE_SIZE = 0xACED80;
private const int REV_130_PERSONAL_SAVE_SIZE = 0x6D6D0;
@@ -212,5 +220,59 @@ public static class FileHashRevision
});
#endregion
#region REVISION 1.4.0
private const uint REVISION_140_ID = 4;
private const int REV_140_MAIN_SAVE_SIZE = 0xB05790;
private const int REV_140_PERSONAL_SAVE_SIZE = 0x74420;
private const int REV_140_POSTBOX_SAVE_SIZE = REV_110_POSTBOX_SAVE_SIZE;
private const int REV_140_PHOTO_STUDIO_ISLAND_SIZE = REV_120_PHOTO_STUDIO_ISLAND_SIZE;
private const int REV_140_PROFILE_SIZE = REV_110_PROFILE_SIZE;
public static readonly FileHashInfo REV_140 = new FileHashInfo(REVISION_140_ID, new[]
{
new FileHashDetails("main.dat", REV_140_MAIN_SAVE_SIZE, new[]
{
new FileHashRegion(0x000110, 0x1d6d5c),
new FileHashRegion(0x1d6e70, 0x323f2c),
new FileHashRegion(0x4faeb0, 0x035d2c),
new FileHashRegion(0x530be0, 0x03e5dc),
new FileHashRegion(0x56f2d0, 0x035d2c),
new FileHashRegion(0x5a5000, 0x03e5dc),
new FileHashRegion(0x5e36f0, 0x035d2c),
new FileHashRegion(0x619420, 0x03e5dc),
new FileHashRegion(0x657b10, 0x035d2c),
new FileHashRegion(0x68d840, 0x03e5dc),
new FileHashRegion(0x6cbf30, 0x035d2c),
new FileHashRegion(0x701c60, 0x03e5dc),
new FileHashRegion(0x740350, 0x035d2c),
new FileHashRegion(0x776080, 0x03e5dc),
new FileHashRegion(0x7b4770, 0x035d2c),
new FileHashRegion(0x7ea4a0, 0x03e5dc),
new FileHashRegion(0x828b90, 0x035d2c),
new FileHashRegion(0x85e8c0, 0x03e5dc),
new FileHashRegion(0x89cea0, 0x2688ec)
}),
new FileHashDetails("personal.dat", REV_140_PERSONAL_SAVE_SIZE, new[]
{
new FileHashRegion(0x00110, 0x35D2C),
new FileHashRegion(0x35E40, 0x3E5DC)
}),
new FileHashDetails("postbox.dat", REV_140_POSTBOX_SAVE_SIZE, new[]
{
new FileHashRegion(0x000100, 0xB4448C)
}),
new FileHashDetails("photo_studio_island.dat", REV_140_PHOTO_STUDIO_ISLAND_SIZE, new[]
{
new FileHashRegion(0x000100, 0x2C8BC)
}),
new FileHashDetails("profile.dat", REV_140_PROFILE_SIZE, new[]
{
new FileHashRegion(0x000100, 0x6945C)
}),
});
#endregion
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -2609,7 +2609,7 @@ wooden simple bed
ribbon (Green)
ribbon (Red)
star bopper (Yellow)
mountain bike
@@ -4384,7 +4384,7 @@ football
bubble blower
@@ -5317,7 +5317,7 @@ acorn knit cap (Chestnut)
combat helmet (Avocado)
dance-team jacket (Black)
uchiwa fan
ocarina
headkerchief (Green)
@@ -5605,7 +5605,7 @@ DIY for Beginners
Test Your DIY Skills
Wildest Dreams DIY
shiny bow platform shoes (Pink)
King Tut mask (Gold)
ballet slippers (Pink)
visual-punk boots (Black)
rumba costume (Red)
@@ -5740,9 +5740,9 @@ bubblegum (Pink)
flower sunglasses (Red)
light stick
tweeter
red sparkler
pinwheel
pretty cosmos wreath
cool windflower wreath
fancy rose wreath
@@ -7867,7 +7867,7 @@ elaborate kimono stand
angled signpost
surfboard
blue balloon
@@ -9855,9 +9855,9 @@ embroidered shoes (Red)
floral hairpin (Pink)
heart hairpin (Pink)
star hairpin (Yellow)
bulb bopper (Green)
flower bopper (Blue)
heart bopper (Pink)
barrette (Pink)
giant ribbon (Red)
star head (Yellow)
@@ -12171,12 +12171,12 @@ star hairpin (Pink)
star hairpin (Purple)
star hairpin (Mint)
star hairpin (Black)
polka-dot mini skirt (Beige)
polka-dot miniskirt (Beige)
dotted knee-high socks (Black)
simple knee-high socks (Pink)
polka-dot mini skirt (Pink)
polka-dot mini skirt (Blue)
polka-dot mini skirt (Gray)
polka-dot miniskirt (Pink)
polka-dot miniskirt (Blue)
polka-dot miniskirt (Gray)
dotted knee-high socks (Yellow)
dotted knee-high socks (Cyan)
dotted knee-high socks (Gray)
@@ -12795,7 +12795,7 @@ hedge
grape-harvest basket (Brown)
@@ -12919,7 +12919,7 @@ wedding fence
rodeo-style springy ride-on
@@ -12972,7 +12972,7 @@ Nook Inc. wet suit (Green)
blue sparkler
@@ -13104,6 +13104,8 @@ horizontal-striped wet suit (Yellow)
horizontal-striped wet suit (Black)
communicator
fountain firework
used fountain firework
@@ -13119,14 +13121,12 @@ communicator
red balloon
yellow balloon
green balloon
pink balloon
Nook Inc. handheld pennant
@@ -13214,3 +13214,75 @@ communicator
Nook Inc. snorkel (Green)
Luna's bed
Dream Bell exchange ticket
fireworks-show wall
Orihime outfit (Red)
Hikoboshi outfit (Blue)
moon rug

View File

@@ -2609,7 +2609,7 @@ cama individual de madera
lazo (Verde)
lazo (Rojo)
diadema estrellas (Amarillo)
bici de montaña
@@ -3332,8 +3332,8 @@ camisa con jersey (Rosa)
cronómetro
tele LCD de 20"
sudadera urbana (Azul marino)
pantalón de chándal (Azul marino)
sudadera de chándal urbana (Azul marino)
pantalón de chándal urbano (Azul marino)
vestido nupcial (Blanco)
kilt (Rojo)
@@ -4384,7 +4384,7 @@ balón de fútbol americano
lanzapompas
@@ -5317,7 +5317,7 @@ gorro bellota (Castaña)
casco de soldado (Verde bosque)
sudadera compañía de baile (Negro)
paipay
ocarina
pañuelo anudado en la nariz (Verde)
@@ -5605,7 +5605,7 @@ Bricolaje para principiantes
Bricolaje para expertos
Bricolaje para epatar
zapato muñequita (Rosa)
máscara egipcia (Dorado)
zapatilla de ballet (Rosa)
bota punk (Negro)
traje de rumba (Rojo)
@@ -5740,9 +5740,9 @@ pompa de chicle (Rosa)
gafa de sol floral (Rojo)
vara de luz
matasuegras
bengala roja
molinete
corona cosmos adorable
corona anémona refinada
corona rosa pomposa
@@ -7609,12 +7609,12 @@ sudadera semiabierta (Celeste)
sudadera semiabierta (Azul marino)
sudadera semiabierta (Púrpura)
sudadera semiabierta (Salmón)
sudadera urbana (Gris)
sudadera urbana (Blanco)
sudadera urbana (Rojo)
sudadera urbana (Celeste)
sudadera urbana (Verde)
sudadera urbana (Azul)
sudadera de chándal urbana (Gris)
sudadera de chándal urbana (Blanco)
sudadera de chándal urbana (Rojo)
sudadera de chándal urbana (Celeste)
sudadera de chándal urbana (Verde)
sudadera de chándal urbana (Azul)
sudadera compañía de baile (Blanco)
sudadera compañía de baile (Púrpura)
sudadera compañía de baile (Rojo)
@@ -7867,7 +7867,7 @@ expositor de kimonos lujoso
poste indicador oblicuo
tabla de surf
globo azul
@@ -9855,9 +9855,9 @@ manoletina con bordado (Rojo)
clip flor (Rosa)
clip corazón (Rosa)
clip estrella (Amarillo)
diadema luciérnagas (Verde)
diadema florecillas (Azul)
diadema corazones (Rosa)
pasador (Rosa)
maxilazo (Rojo)
casco estrella (Amarillo)
@@ -11282,12 +11282,12 @@ pantalón de vestir (Azul marino)
pantalón de vestir (Beis)
pantalón de vestir (Blanco)
acuario de artemias
pantalón de chándal (Gris)
pantalón de chándal (Blanco)
pantalón de chándal (Rojo)
pantalón de chándal (Celeste)
pantalón de chándal (Verde)
pantalón de chándal (Azul)
pantalón de chándal urbano (Gris)
pantalón de chándal urbano (Blanco)
pantalón de chándal urbano (Rojo)
pantalón de chándal urbano (Celeste)
pantalón de chándal urbano (Verde)
pantalón de chándal urbano (Azul)
pantalón de polipiel (Marrón)
pantalón de polipiel (Beis)
pantalón de polipiel (Rojo)
@@ -12795,7 +12795,7 @@ seto
mochila vendimia (Marrón)
@@ -12919,7 +12919,7 @@ valla de boda
balancín de muelle vaquero
@@ -12972,7 +12972,7 @@ traje de buceo de Nook Inc. (Verde)
bengala azul
@@ -13104,6 +13104,8 @@ traje de buceo a rayas (Amarillo)
traje de buceo a rayas (Negro)
comunicador
bengala de tubo
bengala de tubo usada
@@ -13119,14 +13121,12 @@ comunicador
globo rojo
globo amarillo
globo verde
globo rosa
banderín Nook Inc. portátil
@@ -13214,3 +13214,75 @@ comunicador
gafa de buceo Nook Inc. (Verde)
cama de Alakama
cupón de bayas onírico
pared fuegos artificiales
atuendo de Orihime (Rojo)
atuendo de Hikoboshi (Azul)
alfombra luna

View File

@@ -2609,7 +2609,7 @@ lit en bois
nœud à cheveux (Vert)
nœud à cheveux (Rouge)
serre-tête étoiles (Jaune)
VTT
@@ -4384,7 +4384,7 @@ ballon de foot américain
lance-bulles
@@ -5317,7 +5317,7 @@ bonnet gland tricoté (Châtaigne)
casque lourd (Vert kaki)
veste d'équipe de danse (Noir)
éventail uchiwa
ocarina
foulard vert (Vert)
@@ -5605,7 +5605,7 @@ Le b.a.-ba du bricolage
Bricolage tous azimuts
Brico foldingo
paire de babies à rubans (Rose)
masque de pharaon (Or)
paire de chaussons danse (Rose)
paire de bottes visual kei (Noir)
costume de rumba (Rouge)
@@ -5740,9 +5740,9 @@ bulle de chewing-gum (Rose)
monture solaire fleurs (Rouge)
baguette fluo
sans-gêne
cierge magique rouge
moulin
jolie couronne cosmos
couronne anémone raffinée
couronne rose élégante
@@ -7867,7 +7867,7 @@ porte-kimono élaboré
panneau direction diagonal
planche de surf
ballon de baudruche bleu
@@ -9855,9 +9855,9 @@ p. de chaussures brodées (Rouge)
épingle fleurie (Rose)
épingle cœur (Rose)
épingle étoile (Jaune)
serre-tête lumières (Vert)
serre-tête fleurs (Bleu)
serre-tête cœurs (Rose)
barrette (Rose)
ruban géant (Rouge)
cagoule étoile (Jaune)
@@ -12795,7 +12795,7 @@ clôture végétale
hotte à raisin (Brun)
@@ -12919,7 +12919,7 @@ clôture de mariage
animal de ranch sur ressort
@@ -12972,7 +12972,7 @@ combi plongée Nook Inc. (Vert)
cierge magique bleu
@@ -13104,6 +13104,8 @@ combi plongée à rayures (Jaune)
combi plongée à rayures (Noir)
émetteur
feu d'artifice fontaine
feu d'artifice fontaine usagé
@@ -13119,14 +13121,12 @@ combi plongée à rayures (Noir)
ballon de baudruche rouge
ballon de baudruche jaune
ballon de baudruche vert
ballon de baudruche rose
fanion portable Nook Inc.
@@ -13214,3 +13214,75 @@ combi plongée à rayures (Noir)
masque avec tuba Nook Inc. (Vert)
lit de Serena
ticket rêve de clochettes
mur feux d'artifice
tenue d'Orihime (Rouge)
tenue d'Hikoboshi (Bleu)
tapis lune

View File

@@ -2609,7 +2609,7 @@ letto singolo di legno
fiocco (Verde)
fiocco (Rosso)
paio antenne stelle (Giallo)
mountain bike
@@ -4384,7 +4384,7 @@ palla da football
sparabolle
@@ -4665,7 +4665,7 @@ eustenottero
acantostega
juramaia
mascherina fucsia (Viola)
mascherina festosa (Viola)
tunica a canottiera (Bianco)
montatura di legno (Marrone)
@@ -4682,7 +4682,7 @@ felpa di pile con stampa (Verde muschio)
giacca da detective (Marrone)
foglia (Verde)
montatura con strass (Rosso)
maschera nera (Nero)
maschera da eroe (Nero)
montatura steampunk (Verde)
vestito dolce (Bianco)
cassetta degli attrezzi
@@ -5317,7 +5317,7 @@ cappellino ghianda di lana (Castagna)
elmetto (Avocado)
felpa danza (Nero)
ventaglio uchiwa
ocarina
fazzoletto giapponese (Verde)
@@ -5605,7 +5605,7 @@ Fai da te per principianti
Fai da te per appassionati
Fai da te per esperti
paio di scarpette bambolina (Rosa)
maschera Re Tut (Dorato)
paio di scarpette da punta (Rosa)
paio di stivali visual kei (Nero)
costume da rumba (Rosso)
@@ -5740,9 +5740,9 @@ gomma con palloncino (Rosa)
montatura a fiori (Rosso)
bastoncino luminoso
trombetta di Capodanno
stella filante rossa
girandola
ghirlanda cosmee carina
ghirlanda anemoni spavalda
ghirlanda rose sbarazzina
@@ -5768,7 +5768,7 @@ ghirlanda rose cupa
ghirlanda viole spavalda
ghirl. crisantemi naturale
ghirlanda giacinti viola
ghirlanda viole cupa
ghirlanda gigli cupa
ghirlanda tulipani cupa
ghirlanda rose blu
montatura a cannuccia (Verde)
@@ -7867,7 +7867,7 @@ portakimono elaborato
segnale direzionale obliquo
tavola da surf
palloncino blu
@@ -9855,9 +9855,9 @@ paio di scarpe ricamate (Rosso)
molletta floreale (Rosa)
molletta cuore (Rosa)
molletta stella (Giallo)
paio antenne fluo (Verde)
paio antenne fiori (Blu)
paio antenne cuori (Rosa)
barretta per capelli (Rosa)
fiocco gigante (Rosso)
cappuccio stella (Giallo)
@@ -11159,11 +11159,11 @@ mascherina per dormire (Arancio)
mascherina per dormire (Rosso)
maschera antigas (Avocado)
mascherina fucsia (Nero)
mascherina fucsia (Blu)
mascherina fucsia (Rosso)
mascherina fucsia (Verde)
mascherina fucsia (Dorato)
mascherina festosa (Nero)
mascherina festosa (Blu)
mascherina festosa (Rosso)
mascherina festosa (Verde)
mascherina festosa (Dorato)
maschera da giullare (Rosso)
maschera da giullare (Verde)
maschera da giullare (Blu)
@@ -12795,7 +12795,7 @@ siepe
canestro da vendemmia (Marrone)
@@ -12919,7 +12919,7 @@ recinzione nuziale
cavallo a molla cowboy
@@ -12972,7 +12972,7 @@ muta Nook Inc. (Verde)
stella filante blu
@@ -13104,6 +13104,8 @@ muta a righe orizzontali (Giallo)
muta a righe orizzontali (Nero)
comunicatore
fuoco d'artificio
fuoco d'artificio esaurito
@@ -13119,14 +13121,12 @@ comunicatore
palloncino rosso
palloncino giallo
palloncino verde
palloncino rosa
gagliardetto Nook Inc.
@@ -13214,3 +13214,75 @@ comunicatore
maschera mare Nook Inc. (Verde)
letto di Sonia
coupon onirico
muro fuochi d'artificio
vestito Orihime (Rosso)
vestito Hikoboshi (Blu)
tappeto luna

View File

@@ -2609,7 +2609,7 @@ DIYさぎょうだい
リボン (グリーン)
リボン (レッド)
ひかるスターアクセサリー (イエロー)
マウンテンバイク
@@ -4384,7 +4384,7 @@ DIYさぎょうだい
シャボンだま
@@ -5317,7 +5317,7 @@ HMD (ホワイト)
コンバットヘルメット (カーキ)
ダンスジャージ (ブラック)
うちわ
オカリナ
ほっかむり (グリーン)
@@ -5605,7 +5605,7 @@ HMD (ホワイト)
チャレンジDIYレシピ
こんなモまでDIY
ロリータシューズ (ピンク)
ツタンカーメン (ゴールド)
バレエシューズ (ピンク)
ヴィジュアルけいブーツ (ブラック)
ルンバないしょう (レッド)
@@ -5740,9 +5740,9 @@ HMD (ホワイト)
フラワーサングラス (レッド)
スティックライト
ふきもどし
あかいてもちはなび
かざぐるま
キュートなコスモスのリース
クールなアネモネのリース
ファンシーなバラのリース
@@ -7867,7 +7867,7 @@ No.1のふく (レッド)
ナナメのみちしるべ
サーフボード
あおいふうせん
@@ -9855,9 +9855,9 @@ No.1のふく (レッド)
おはなのヘアピン (ピンク)
ハートのかみかざり (ピンク)
ほしのかみかざり (イエロー)
ひかるボールアクセサリー (グリーン)
ひかるはなのアクセサリー (ブルー)
ひかるハートアクセサリー (ピンク)
バレッタ (ピンク)
おおきなリボン (レッド)
おほしさまのあたま (イエロー)
@@ -12795,7 +12795,7 @@ Nintendo Switch
ぶどうのしゅうかくおけ (ブラウン)
@@ -12919,7 +12919,7 @@ Nintendo Switch
ロデオふうスプリングゆうぐ
@@ -12972,7 +12972,7 @@ Nintendo Switch
あおいてもちはなび
@@ -13104,6 +13104,8 @@ Nintendo Switch
ボーダーのマリンスーツ (ブラック)
つうしんそうち
おきはなび
おきはなびのもえかす
@@ -13119,14 +13121,12 @@ Nintendo Switch
あかいふうせん
きいろのふうせん
みどりのふうせん
ピンクのふうせん
たぬきかいはつのてもちペナント
@@ -13214,3 +13214,75 @@ Nintendo Switch
たぬきかいはつシュノーケル (グリーン)
ゆめみのベッド
ゆめのベルひきかえけん
はなびたいかいのかべ
おりひめのふく (あか)
ひこぼしのふく (あお)
つきのラグ

View File

@@ -2609,7 +2609,7 @@ K.K.디스코
리본 (그린)
리본 (레드)
빛나는 별 액세서리 (옐로)
마운틴 바이크
@@ -4384,7 +4384,7 @@ K.K.디스코
비눗방울
@@ -5317,7 +5317,7 @@ HMD (화이트)
철모 (카키)
댄스 트레이닝복 (블랙)
둥글부채
오카리나
뒤집어쓴 보자기 (그린)
@@ -5605,7 +5605,7 @@ HMD (화이트)
도전! DIY 레시피
무엇이든 뚝딱?! DIY 레시피
리본 레이스 슈즈 (핑크)
투탕카멘 (골드)
발레 슈즈 (핑크)
펑크 스타일 부츠 (블랙)
룸바 의상 (레드)
@@ -5740,9 +5740,9 @@ MA-1 스커트 (카키)
플라워 선글라스 (레드)
형광봉
코끼리 피리
빨간색 스파클러
바람개비
큐트 코스모스 리스
쿨 아네모네 리스
팬시 장미 리스
@@ -7867,7 +7867,7 @@ Nook Inc. 러그
기울어진 이정표
서핑 보드
파란색 풍선
@@ -9855,9 +9855,9 @@ Nook Inc. 둥글부채
꽃 머리핀 (핑크)
하트 머리핀 (핑크)
별 머리핀 (옐로)
빛나는 볼 액세서리 (그린)
빛나는 꽃 액세서리 (블루)
빛나는 하트 액세서리 (핑크)
바레트 (핑크)
커다란 리본 (레드)
별님 머리 (옐로)
@@ -12795,7 +12795,7 @@ Nintendo Switch
포도 수확 바구니 (브라운)
@@ -12919,7 +12919,7 @@ Nintendo Switch
로데오풍 스프링 놀이 기구
@@ -12972,7 +12972,7 @@ Nook Inc. 잠수복 (그린)
파란색 스파클러
@@ -13104,6 +13104,8 @@ Nook Inc. 알로하 그린 (그린)
줄무늬 잠수복 (블랙)
통신 장치
분수 불꽃
분수 불꽃의 재
@@ -13119,14 +13121,12 @@ Nook Inc. 알로하 그린 (그린)
빨간색 풍선
노란색 풍선
초록색 풍선
핑크색 풍선
Nook Inc. 손 깃발
@@ -13214,3 +13214,75 @@ Nook Inc. 알로하 그린 (그린)
Nook Inc. 스노클 (그린)
몽셰르의 침대
꿈의 벨 교환권
불꽃축제 벽
직녀 옷 (빨간색)
견우 옷 (파란색)
보름달 러그

View File

@@ -2609,7 +2609,7 @@ K.K.迪斯科
蝴蝶结 (绿色)
蝴蝶结 (红色)
发光星星头饰 (黄色)
登山车
@@ -4384,7 +4384,7 @@ V领毛衣 (蓝色)
肥皂泡
@@ -5317,7 +5317,7 @@ TOY屏风
钢盔 (卡其色)
舞蹈运动服 (黑色)
扇子
陶笛
小偷头巾 (绿色)
@@ -5605,7 +5605,7 @@ TOY屏风
挑战DIY手册
竟然能这样DIY
洛丽塔鞋 (粉红)
图坦卡门面具 (金色)
芭蕾舞鞋 (粉红)
视觉系靴 (黑色)
伦巴舞衣 (红色)
@@ -5740,9 +5740,9 @@ MA-1防风裙 (卡其色)
花朵墨镜 (红色)
荧光棒
派对吹笛
红色烟花棒
纸风车
可爱波斯菊花环
清新银莲花花环
精美玫瑰花环
@@ -7867,7 +7867,7 @@ Nook Inc.地毯
倾斜路标
冲浪板
蓝色气球
@@ -9855,9 +9855,9 @@ Nook Inc.团扇
花朵发夹 (粉红)
爱心发夹 (粉红)
星星发夹 (黄色)
发光球头饰 (绿色)
发光花朵头饰 (蓝色)
发光爱心头饰 (粉红)
发夹 (粉红)
大蝴蝶结 (红色)
星星头套 (黄色)
@@ -12795,7 +12795,7 @@ Nintendo Switch
葡萄采收桶 (棕色)
@@ -12919,7 +12919,7 @@ Nintendo Switch
牛仔竞技风弹簧游乐器材
@@ -12972,7 +12972,7 @@ Nook Inc.潜水衣 (绿色)
蓝色烟花棒
@@ -13104,6 +13104,8 @@ Nook Inc.夏威夷衬衫·绿色 (绿色)
粗横纹潜水衣 (黑色)
通信装置
地面烟花筒
地面烟花筒的灰烬
@@ -13119,14 +13121,12 @@ Nook Inc.夏威夷衬衫·绿色 (绿色)
红色气球
黄色气球
绿色气球
粉红色气球
Nook Inc.手持三角旗
@@ -13214,3 +13214,75 @@ Nook Inc.夏威夷衬衫·绿色 (绿色)
Nook Inc.潜水镜附呼吸管 (绿色)
梦美的床铺
梦境铃钱兑换券
烟花大会墙
织女服 (红色)
牛郎服 (蓝色)
月之地毯

View File

@@ -2609,7 +2609,7 @@ K.K.迪斯可
蝴蝶結 (綠色)
蝴蝶結 (紅色)
發光星星頭飾 (黃色)
登山車
@@ -3286,7 +3286,7 @@ Polo衫 (海軍藍)
草莓服 (紅色)
西瓜服 (紅色)
夏蜜柑服 (橘色)
橘子服 (橘色)
奇異果服 (綠色)
葡萄服 (紫色)
@@ -3772,7 +3772,7 @@ V領毛衣 (藍色)
紅色菊花花蕾
黃金燭台
玻璃盆栽
天秤
天秤座天平
垂吊玻璃盆栽
磚塊水井
@@ -4384,7 +4384,7 @@ V領毛衣 (藍色)
肥皂泡
@@ -5273,7 +5273,7 @@ TOY屏風
河流地板
熔岩地板
夏蜜柑帽子 (橘色)
橘子帽子 (橘色)
奇異果帽子 (綠色)
草莓帽子 (紅色)
葡萄帽子 (紫色)
@@ -5317,7 +5317,7 @@ TOY屏風
鋼盔 (卡其色)
跳舞運動服 (黑色)
扇子
陶笛
小偷頭巾 (綠色)
@@ -5605,7 +5605,7 @@ TOY屏風
挑戰DIY方程式
這種東西也能自己做DIY
蘿莉塔鞋 (粉紅色)
圖坦卡門面具 (金色)
芭蕾舞鞋 (粉紅色)
視覺系靴 (黑色)
倫巴服裝 (紅色)
@@ -5740,9 +5740,9 @@ MA-1防風裙 (卡其色)
花朵墨鏡 (紅色)
螢光棒
派對吹笛
紅色仙女棒
紙風車
可愛波斯菊花圈
清新銀蓮花花圈
精美玫瑰花圈
@@ -7867,7 +7867,7 @@ Nook Inc.地毯
傾斜路標
衝浪板
藍色氣球
@@ -9855,9 +9855,9 @@ Nook Inc.扇子
花朵髮夾 (粉紅色)
愛心髮飾 (粉紅色)
星星髮飾 (黃色)
發光球頭飾 (綠色)
發光花朵頭飾 (藍色)
發光愛心頭飾 (粉紅色)
髮夾 (粉紅色)
大蝴蝶結 (紅色)
星星頭套 (黃色)
@@ -12795,7 +12795,7 @@ Nintendo Switch
葡萄採收桶 (棕色)
@@ -12919,7 +12919,7 @@ Nintendo Switch
牛仔競技風彈簧遊樂器材
@@ -12972,7 +12972,7 @@ Nook Inc.潛水衣 (綠色)
藍色仙女棒
@@ -13104,6 +13104,8 @@ Nook Inc.綠色夏威夷襯衫 (綠色)
粗橫紋潛水衣 (黑色)
通訊裝置
地面煙火筒
地面煙火筒灰燼
@@ -13119,14 +13121,12 @@ Nook Inc.綠色夏威夷襯衫 (綠色)
紅色氣球
黃色氣球
綠色氣球
粉紅色氣球
Nook Inc.手持三角旗
@@ -13214,3 +13214,75 @@ Nook Inc.綠色夏威夷襯衫 (綠色)
Nook Inc.潛水鏡附呼吸管 (綠色)
夢美的床鋪
夢境鈴錢兌換券
煙火大會牆
織女服 (紅色)
牛郎服 (藍色)
月之地毯

View File

@@ -15,6 +15,7 @@ public static class RevisionChecker
new SaveFileSizes(0xAC2AA0, 0x6BED0, 0x263C0, 0xB44590, 0x69560), // 1.1.0
new SaveFileSizes(0xACECD0, 0x6D6C0, 0x2C9C0, 0xB44590, 0x69560), // 1.2.0
new SaveFileSizes(0xACED80, 0x6D6D0, 0x2C9C0, 0xB44590, 0x69560), // 1.3.0
new SaveFileSizes(0xB05790, 0x74420, 0x2C9C0, 0xB44590, 0x69560), // 1.4.0
};
private static readonly FileHeaderInfo[] RevisionInfo =
@@ -29,6 +30,7 @@ public static class RevisionChecker
new FileHeaderInfo { Major = 0x20006, Minor = 0x20008, HeaderRevision = 0, Unk1 = 2, SaveRevision = 7, Unk2 = 2 }, // 1.2.1
new FileHeaderInfo { Major = 0x40002, Minor = 0x40008, HeaderRevision = 0, Unk1 = 2, SaveRevision = 8, Unk2 = 2 }, // 1.3.0
new FileHeaderInfo { Major = 0x40002, Minor = 0x40008, HeaderRevision = 0, Unk1 = 2, SaveRevision = 9, Unk2 = 2 }, // 1.3.1
new FileHeaderInfo { Major = 0x50001, Minor = 0x5000B, HeaderRevision = 0, Unk1 = 2, SaveRevision = 10, Unk2 = 2 }, // 1.4.0
};
public static readonly IReadOnlyList<SaveFileSizes> SizeInfo = new[]
@@ -43,6 +45,7 @@ public static class RevisionChecker
SizesByRevision[2], // 1.2.1
SizesByRevision[3], // 1.3.0
SizesByRevision[3], // 1.3.1
SizesByRevision[4], // 1.4.0
};
public static readonly IReadOnlyList<FileHashInfo> HashInfo = new[]
@@ -57,6 +60,7 @@ public static class RevisionChecker
FileHashRevision.REV_120, // 1.2.1
FileHashRevision.REV_130, // 1.3.0
FileHashRevision.REV_130, // 1.3.1
FileHashRevision.REV_140, // 1.4.0
};
public static bool IsRevisionKnown(this FileHeaderInfo info) => info.GetKnownRevisionIndex() >= 0;

View File

@@ -59,6 +59,7 @@ public static MainSaveOffsets GetOffsets(FileHeaderInfo Info)
7 => new MainSaveOffsets12(),
8 => new MainSaveOffsets13(),
9 => new MainSaveOffsets13(),
10 => new MainSaveOffsets14(),
_ => throw new IndexOutOfRangeException("Unknown revision!"),
};
}

View File

@@ -0,0 +1,50 @@
namespace NHSE.Core
{
/// <summary>
/// <inheritdoc cref="MainSaveOffsets"/>
/// </summary>
public class MainSaveOffsets14 : MainSaveOffsets
{
#region GSaveLand
public const int GSaveLandStart = 0x110;
public override int Animal => GSaveLandStart + 0x10;
public override int LandMyDesign => GSaveLandStart + 0x1D7200;
public override int PatternsPRO => LandMyDesign + (PatternCount * DesignPattern.SIZE);
public override int PatternFlag => PatternsPRO + (PatternCount * DesignPatternPRO.SIZE);
public override int PatternTailor => PatternFlag + DesignPattern.SIZE;
public const int GSaveWeather = GSaveLandStart + 0x1D6FB0;
public override int WeatherArea => GSaveWeather + 0x14; // Hemisphere
public override int WeatherRandSeed => GSaveWeather + 0x18;
public override int EventFlagLand => GSaveLandStart + 0x20100C;
// GSaveMainField
public const int GSaveMainFieldStart = GSaveLandStart + 0x20180C;
public override int FieldItem => GSaveMainFieldStart + 0x00000;
public override int LandMakingMap => GSaveMainFieldStart + 0xAAA00;
public override int MainFieldStructure => GSaveMainFieldStart + 0xCF600;
public override int OutsideField => GSaveMainFieldStart + 0xCF998;
public override int MyDesignMap => GSaveMainFieldStart + 0xCFA34;
public override int PlayerHouseList => GSaveLandStart + 0x2DC238;
public override int NpcHouseList => GSaveLandStart + 0x40E238;
public const int GSaveShop = GSaveLandStart + 0x40F480;
public override int ShopKabu => GSaveShop + 0x2AD0; // part of shop
public override int Museum => GSaveLandStart + 0x4124C4;
public override int Visitor => GSaveLandStart + 0x4158C8;
public override int SaveFg => GSaveLandStart + 0x415AF8;
public override int BulletinBoard => GSaveLandStart + 0x416440;
public override int AirportThemeColor => GSaveLandStart + 0x4F7048;
#endregion
#region GSaveLandOther
public const int GSaveLandOtherStart = 0x4FAD60;
public override int LostItemBox => GSaveLandOtherStart + 0x5CF3F0;
public override int LastSavedTime => GSaveLandOtherStart + 0x5D3D48;
#endregion
}
}

View File

@@ -54,6 +54,7 @@ public static PersonalOffsets GetOffsets(FileHeaderInfo Info)
7 => new PersonalOffsets12(),
8 => new PersonalOffsets13(),
9 => new PersonalOffsets13(),
10 => new PersonalOffsets13(),
_ => throw new IndexOutOfRangeException("Unknown revision!"),
};
}

View File

@@ -0,0 +1,44 @@
namespace NHSE.Core
{
/// <summary>
/// <inheritdoc cref="PersonalOffsets"/>
/// </summary>
public sealed class PersonalOffsets14 : PersonalOffsets
{
private const int Player = 0x110;
public override int PersonalId => Player + 0xAFA8;
public override int EventFlagsPlayer => Player + 0xAFE0;
private const int GSaveLifeSupport = Player + 0xBFE0;
public override int CountAchievement => GSaveLifeSupport + 0xE98; // CountAchievement
public override int NowPoint => GSaveLifeSupport + 0x5498; // Nook Miles
public override int TotalPoint => NowPoint + 8; // Total Nook Miles Earned
public override int Birthday => Player + 0x1168C;
public override int ProfileMain => Player + 0x116A0;
public override int ProfilePhoto => ProfileMain + 0x14;
public override int ProfileBirthday => ProfileMain + 0x23058;
public override int ProfileFruit => ProfileMain + 0x2305C;
public override int ProfileTimestamp => ProfileMain + 0x230CC;
public override int ProfileIsMakeVillage => ProfileMain + 0x230D0;
// end player
private const int PlayerOther = 0x35E40;
public override int Pockets1 => PlayerOther + 0x10;
public override int Pockets2 => Pockets1 + (8 * Pockets1Count) + 0x18;
public override int Wallet => Pockets2 + (8 * Pockets2Count) + 0x18;
public override int ItemChest => PlayerOther + 0x18C;
public override int ItemCollectBit => PlayerOther + 0xA058;
public override int ItemRemakeCollectBit => PlayerOther + 0xA7AC;
public override int Manpu => PlayerOther + 0xAF7C;
public override int Bank => PlayerOther + 0x345E4;
public override int Recipes => Bank + 0x10;
public override int MaxRecipeID => 0x2CB;
public override int MaxRemakeBitFlag => 0x7D0 * 32;
}
}

View File

@@ -22,7 +22,9 @@ public enum ItemKind : byte
Kind_AutumnLeaf,
Kind_Axe,
Kind_Bag,
Kind_Balloon,
Kind_BdayCupcake,
Kind_BlowBubble,
Kind_BridgeItem,
Kind_Bromide,
Kind_Bush,
@@ -46,6 +48,8 @@ public enum ItemKind : byte
Kind_EasterEgg,
Kind_EventObjFtr,
Kind_Fence,
Kind_FierworkHand,
Kind_FireworkM,
Kind_Fish,
Kind_FishBait,
Kind_FishingRod,
@@ -59,6 +63,7 @@ public enum ItemKind : byte
Kind_Ftr,
Kind_Giftbox,
Kind_GroundMaker,
Kind_HandheldPennant,
Kind_Helmet,
Kind_Honeycomb,
Kind_HousePost,
@@ -89,6 +94,7 @@ public enum ItemKind : byte
Kind_Ocarina,
Kind_Ore,
Kind_Panflute,
Kind_Partyhorn,
Kind_PartyPopper,
Kind_PhotoStudioList,
Kind_Picture,
@@ -134,6 +140,7 @@ public enum ItemKind : byte
Kind_Vegetable,
Kind_Watering,
Kind_Weed,
Kind_Windmill,
Kind_WoodenStickTool,
Kind_WrappingPaper,
Kind_YutaroWisp,

View File

@@ -7,6 +7,13 @@ namespace NHSE.Core
public enum ItemMenuIconType : ushort
#pragma warning restore CA1027 // Mark enums with FlagsAttribute
{
_0x07D286A1,
_0x4FBCED5B,
_0x6483FF79,
_0x9E09D2F8,
_0x9E8AA063,
_0xDEDC1916,
_0xF3E89B01,
Akoyagai,
Amaebi,
Anemone0,
@@ -23,6 +30,7 @@ public enum ItemMenuIconType : ushort
BadKabu,
Bag,
Baigai,
Balloon,
BanbooShoot,
BdayCupcake,
BellExchangeTicket,
@@ -501,6 +509,7 @@ public enum ItemMenuIconType : ushort
Weed,
WetSuit,
Wig,
Windmill,
WPaperBlack,
WPaperBlue,
WPaperBrown,

View File

@@ -601,6 +601,7 @@ public static class RecipeList
{0x2C9, 12758}, // hedge
{0x2CA, 12894}, // wedding fence
{0x2CB, 12695}, // wedding wand
{0x2CC, 05607}, //
{0x2CD, 12552}, // mermaid table
{0x2CE, 12553}, // mermaid shelf
{0x2CF, 12554}, // mermaid vanity

View File

@@ -104,7 +104,7 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x054, new EventFlagLand(0 , 10 , 0084, "NNpcPhoneColorChangeCounter" )}, // 一般NPC|スマホ柄が汎用布地に変わるカウンタ
{0x055, new EventFlagLand(0 , 1 , 0085, "RcoEnableBuyHousingKit" )}, // たぬきち|売り土地を探すの選択肢解禁
{0x056, new EventFlagLand(0 , 99 , 0086, "OpeningSeqBGMChangeCounter" )}, // 序盤シーケンス|BGM切替カウンタ
{0x060, new EventFlagLand(0 , 1 , 0096, "JohnnySitUpFlag" )}, // ジョニー|起きたかフラグ
{0x060, new EventFlagLand(0 , 1 , 0096, "JohnnySitUpFlag" )}, // ジョニー|起きたかフラグ(海賊ジョニーでも使用)
{0x062, new EventFlagLand(0 , 1 , 0098, "AllowNpcInterestActivity" )}, // NPCの認識行動が許可されたか
{0x067, new EventFlagLand(0 , 1 , 0103, "RcoBuildCampsiteOngoing" )}, // たぬきち|キャンプ場設置の依頼を島の誰かが引き受けた
{0x068, new EventFlagLand(0 , 1 , 0104, "RcoBuildCampsiteComplete" )}, // たぬきち|キャンプ場設置の依頼で、誰かが予定地を建てた
@@ -115,7 +115,7 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x06E, new EventFlagLand(0 , 1 , 0110, "RcoBuildFirstVisitorsHousingKitComplete" )}, // たぬきち|1人目の客のハウジングキットを、島の誰かが設置した
{0x072, new EventFlagLand(15, 15 , 0114, "DonationAmountForMuseum" )}, // 博物館建設のために必要な寄贈の残り数
{0x073, new EventFlagLand(0 , 1 , 0115, "OfficeConstruction1" )}, // 役場|工事中→役場
{0x074, new EventFlagLand(0 , 1 , 0116, "JohnnyTalkAnyPlayerFlag" )}, // ジョニー|村の誰か話しかけたか
{0x074, new EventFlagLand(0 , 1 , 0116, "JohnnyTalkAnyPlayerFlag" )}, // ジョニー|村の誰か話しかけたか(海賊ジョニー不使用)
{0x076, new EventFlagLand(0 , 1 , 0118, "TkkReturn" )}, // とたけけ|帰ったか?
{0x077, new EventFlagLand(0 , 1 , 0119, "FlightBalloonEnable" )}, // 空飛ぶ風船|発生してよいか?
{0x078, new EventFlagLand(0 , 1 , 0120, "ConfirmedFruit" )}, // フルーツの品種が特定された
@@ -164,7 +164,7 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x0A6, new EventFlagLand(0 , 1 , 0166, "RcmImmQuestOpen" )}, // たぬきち|移住Quest開始できる
{0x0A7, new EventFlagLand(0 , 1 , 0167, "RcmImmQuestRunning" )}, // たぬきち|移住Quest実施中
{0x0A8, new EventFlagLand(0 , 1 , 0168, "RcmImmQuestComplete" )}, // たぬきち|移住Quest完了
{0x0A9, new EventFlagLand(0 , 9 , 0169, "JohnnyRequirePartsNum" )}, // ジョニー|必要なパーツの個数
{0x0A9, new EventFlagLand(0 , 9 , 0169, "JohnnyRequirePartsNum" )}, // ジョニー|必要なパーツの個数(海賊ジョニー不使用)
{0x0AA, new EventFlagLand(0 , 1 , 0170, "ImmQ_A_InteriorDonateNow" )}, // 移住Quest|住宅A|屋内家具を今寄贈した
{0x0AB, new EventFlagLand(0 , 1 , 0171, "ImmQ_B_InteriorDonateNow" )}, // 移住Quest|住宅B|屋内家具の今寄贈した
{0x0AC, new EventFlagLand(0 , 1 , 0172, "ImmQ_C_InteriorDonateNow" )}, // 移住Quest|住宅C|屋内家具の今寄贈した
@@ -237,20 +237,20 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x0F9, new EventFlagLand(0 , 1 , 0249, "IslandLocalFruitCherry" )}, // 島の特産フルーツがサクランボならON
{0x0FA, new EventFlagLand(0 , 1 , 0250, "HghPeddlerPurchaceToday" )}, // きぬよ行商|今回の来訪で島の誰かが商品購入した?
{0x0FB, new EventFlagLand(0 , 1 , 0251, "PAnnounceKkProject" )}, // 島内放送|とたけけプロジェクトの予告発生した?
{0x0FC, new EventFlagLand(0 , 1 , 0252, "TownNewsHeardEventStarted" )}, // 内放送|イベント開始済み村内放送を聞いた?
{0x0FC, new EventFlagLand(0 , 1 , 0252, "TownNewsHeardEventStarted" )}, // 内放送|イベント開始済み村内放送を聞いた?
{0x0FD, new EventFlagLand(0 , 999 , 0253, "SzaIslandEvaluationBeforeLife" )}, // しずえ|島の環境:前回の「生活」ポイント
{0x0FE, new EventFlagLand(0 , 999 , 0254, "SzaIslandEvaluationBeforeNatural" )}, // しずえ|島の環境:前回の「自然」ポイント
{0x0FF, new EventFlagLand(0 , 5000 , 0255, "FishNetHostCatchNumResult" )}, // 通信開始時にネットホストのプレイヤーが今まで捕まえたサカナの数
{0x100, new EventFlagLand(0 , 10 , 0256, "SzaIslandEvaluationBeforeDevelopment" )}, // しずえ|島の環境:前回の「発展」要素
{0x101, new EventFlagLand(0 , 1 , 0257, "SzaIslandEvaluationTodayRankUpdate" )}, // しずえ|島の環境今日のポイント更新したらON
{0x102, new EventFlagLand(0 , 1 , 0258, "SzaIslandEvaluationImprovementLifeToday" )}, // しずえ|島の環境:前回内放送より「生活」ポイント向上
{0x103, new EventFlagLand(0 , 1 , 0259, "SzaIslandEvaluationImprovementNaturalToday" )}, // しずえ|島の環境:前回内放送より「自然」ポイント向上
{0x104, new EventFlagLand(0 , 1 , 0260, "SzaIslandEvaluationImprovementDevelopToday" )}, // しずえ|島の環境:前回内放送より発展要素が増えた
{0x102, new EventFlagLand(0 , 1 , 0258, "SzaIslandEvaluationImprovementLifeToday" )}, // しずえ|島の環境:前回内放送より「生活」ポイント向上
{0x103, new EventFlagLand(0 , 1 , 0259, "SzaIslandEvaluationImprovementNaturalToday" )}, // しずえ|島の環境:前回内放送より「自然」ポイント向上
{0x104, new EventFlagLand(0 , 1 , 0260, "SzaIslandEvaluationImprovementDevelopToday" )}, // しずえ|島の環境:前回内放送より発展要素が増えた
{0x105, new EventFlagLand(0 , 1 , 0261, "AppE_WelcomoMigrants_AN" )}, // AppE_WelcomoMigrants_AN発生した
{0x106, new EventFlagLand(0 , 1 , 0262, "AppE_WelcomoMigrants_HA" )}, // AppE_WelcomoMigrants_HA発生した
{0x107, new EventFlagLand(0 , 1 , 0263, "TkkFirstLiveSubPlayer" )}, // とたけけ|2人目以降のプレイヤーが初ライブを見られる
{0x108, new EventFlagLand(0 , 1 , 0264, "PortableRadioControl" )}, // けいたいラジオ挙動制御用フラグ
{0x109, new EventFlagLand(0 , 1 , 0265, "Market2Built" )}, // まめつぶ商店が倉庫になった
{0x109, new EventFlagLand(0 , 1 , 0265, "Market2Built" )}, // まめつぶ商店がになった
{0x10A, new EventFlagLand(0 , 1 , 0266, "OwlTentExplainFor1P" )}, // フータ|誰かに棒高跳び&スコップレシピ提供済
{0x10B, new EventFlagLand(0 , 1 , 0267, "MuseumConstructionToday" )}, // 今日、博物館工事当日であるか?
{0x10C, new EventFlagLand(0 , 1 , 0268, "ShopUnlockAxe" )}, // お店|ショボいオノの店売りを解禁する
@@ -272,7 +272,7 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x11D, new EventFlagLand(0 , 1 , 0285, "PynVisitToday" )}, // ぴょんたろうが今日来訪NPCとして来訪する
{0x11E, new EventFlagLand(0 , -1 , 0286, "CatchInsectFesGetTotalNum" )}, // ムシ取り大会|全員のムシ取得数
{0x11F, new EventFlagLand(0 , -1 , 0287, "CatchFishFesGetTotalNum" )}, // つり大会|全員のサカナ取得数
{0x120, new EventFlagLand(0 , 1 , 0288, "JohnnyQuestFinishFlagIsland" )}, // ジョニー|その日に村で誰かがジョニーを助けたか?
{0x120, new EventFlagLand(0 , 1 , 0288, "JohnnyQuestFinishFlagIsland" )}, // ジョニー|その日に村で誰かがジョニーを助けたか?(海賊ジョニーでも使用)
{0x121, new EventFlagLand(0 , 10 , 0289, "CampRandomSelectMoveOutNpc" )}, // キャンプ場|ランダム選出転出NPCが何番目の住人か(0:未抽選/抽選対象なし)
{0x122, new EventFlagLand(0 , 1 , 0290, "CampFireRemoved" )}, // 広場のキャンプファイアー撤去
{0x125, new EventFlagLand(0 , 1 , 0293, "UnlockEaster" )}, // BCATにてイースター解禁
@@ -286,7 +286,10 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x135, new EventFlagLand(0 , 1 , 0309, "Museum2ConstructionToday" )}, // 今日、博物館②工事当日であるか?
{0x136, new EventFlagLand(0 , 1 , 0310, "GrowUpAfterPatch1_1" )}, // 1.1適用して成長処理をした
{0x137, new EventFlagLand(0 , 1 , 0311, "GrowUpAfterPatch1_2" )}, // 1.2適用して成長処理をした
{0x138, new EventFlagLand(0 , 1 , 0312, "GrowUpAfterPatch1_3" )}, // 1.3適用して成長処理をした
{0x139, new EventFlagLand(0 , 1 , 0313, "GrowUpAfterPatch1_4" )}, // 1.4適用して成長処理をした
{0x13B, new EventFlagLand(0 , 1 , 0315, "EarthdaySloFirstVisit" )}, // アースデーの初回レイジを予約した
{0x13C, new EventFlagLand(0 , 1 , 0316, "OwlFoundDiveFish" )}, // フータ|誰かが海の幸を見せたことがある
{0x13D, new EventFlagLand(0 , 1 , 0317, "SloPeddlerPurchaceToday" )}, // レイジ行商|今回の来訪で島の誰かが商品購入した?
{0x13E, new EventFlagLand(0 , 1 , 0318, "FoxPreVisitToday" )}, // つねきちが今日事前来訪する
{0x13F, new EventFlagLand(0 , 1 , 0319, "AnyPlayerHouseBuilt" )}, // 住人の誰かのマイホームが1度でも建ったことがある
@@ -311,6 +314,7 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x157, new EventFlagLand(0 , 1 , 0343, "FoxPreVisit1Today" )}, // つねきち1回目の事前来訪当日
{0x158, new EventFlagLand(0 , 1 , 0344, "FoxPreVisit2Today" )}, // つねきち2回目の事前来訪当日
{0x159, new EventFlagLand(0 , 1 , 0345, "EarthdaySloFirstVisitToday" )}, // 今日がアースデーの初回レイジ来訪日
{0x15A, new EventFlagLand(0 , 1 , 0346, "IsDreamingBed" )}, // ゆめみ用ベッドある?
{0x15B, new EventFlagLand(0 , 1 , 0347, "UnlockJuneBrideSeq" )}, // ゲーム進行的にジューンブライド解禁
{0x15C, new EventFlagLand(0 , -1 , 0348, "RandomKey1" )}, // ランダムキーa
{0x15D, new EventFlagLand(0 , -1 , 0349, "RandomKey2" )}, // ランダムキーb
@@ -318,6 +322,16 @@ public EventFlagLand(short init, short max, ushort index, string name)
{0x15F, new EventFlagLand(0 , -1 , 0351, "RandomKey4" )}, // ランダムキーd
{0x160, new EventFlagLand(0 , 1 , 0352, "FoxPreVisitAlreadyBuyToday" )}, // つねきち|今日誰かが事前来訪中に美術品を買った
{0x161, new EventFlagLand(0 , 1 , 0353, "RcoHasResolvedMoveKitBug" )}, // いせつキットバグを解消したか
{0x162, new EventFlagLand(0 , 1 , 0354, "TapDreamEnable" )}, // ゆめみ|ゆめみ機能解禁か?
{0x164, new EventFlagLand(0 , 1 , 0356, "MyDesignPro2" )}, // 追加型マイデザインPro解禁
{0x165, new EventFlagLand(0 , 1 , 0357, "GulBVisitEnable" )}, // 海賊ジョニーが来訪する条件を満たしたか
{0x167, new EventFlagLand(0 , 9999 , 0359, "FireworksAddBbsYear" )}, // 花火大会予告の掲示板書き込みをした年
{0x16A, new EventFlagLand(0 , 1 , 0362, "EnableMyDream" )}, // ゆめみ|現在、自分の島の夢を提供中か?
{0x16B, new EventFlagLand(0 , 1 , 0363, "JohnnyInvisible" )}, // ジョニー非表示状態か
{0x16C, new EventFlagLand(0 , 1 , 0364, "DreamUploadPlayerHaveCreaterID" )}, // ゆめみ|夢の最終更新者がMyDesignショーケースの作者IDを持ってるか
{0x16D, new EventFlagLand(0 , 5000 , 0365, "DiveFishNetHostCatchNumResult" )}, // 通信開始時にネットホストのプレイヤーが今までに捕まえた海の幸の数
{0x172, new EventFlagLand(0 , 1 , 0370, "NeedUpdatePassword" )}, // セーブデータ復元後のパスワード更新必要
{0x176, new EventFlagLand(0 , 1 , 0374, "EventObjFlag0" )}, // イベントオブジェフラグ0
};
private const string Unknown = "???";

View File

@@ -24,9 +24,9 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{
{0x002, new EventFlagPlayer(0 , 9 , 0002, "PrologueNpcHintCount" )}, // NPCの序盤ヒントをいくつまで聞いたか
{0x003, new EventFlagPlayer(0 , 31 , 0003, "TotakekeLiveCount" )}, // とたけけライブを聴いた回数
{0x008, new EventFlagPlayer(0 , 1 , 0008, "JohnnyQuestStartFlag" )}, // ジョニークエスト開始フラグ
{0x009, new EventFlagPlayer(0 , 1 , 0009, "JohnnyQuestFinishFlag" )}, // ジョニークエスト完了フラグ
{0x00A, new EventFlagPlayer(0 , 8 , 0010, "JonnyTalkCount" )}, // 寝ているジョニーに話しかけた回数
{0x008, new EventFlagPlayer(0 , 1 , 0008, "JohnnyQuestStartFlag" )}, // ジョニークエスト開始フラグ(海賊ジョニーは別フラグ)
{0x009, new EventFlagPlayer(0 , 1 , 0009, "JohnnyQuestFinishFlag" )}, // ジョニークエスト完了フラグ(海賊ジョニーは別フラグ)
{0x00A, new EventFlagPlayer(0 , 8 , 0010, "JonnyTalkCount" )}, // 寝ているジョニーに話しかけた回数(海賊ジョニー共用)
{0x00B, new EventFlagPlayer(0 , 1 , 0011, "HasPlayedTreasureHunt" )}, // 宝探しクエストをした事がある
{0x00C, new EventFlagPlayer(0 , 1 , 0012, "HasPlayedHideAndSeek" )}, // かくれんぼクエストをした事がある
{0x00D, new EventFlagPlayer(0 , 1 , 0013, "ShizueCmnExplanationTowntune" )}, // しずえ|メロ説明聞いたか?
@@ -52,7 +52,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x025, new EventFlagPlayer(0 , 1 , 0037, "RcmTalkBeforeFlag" )}, // まめきち|店内で会話したことある?
{0x026, new EventFlagPlayer(0 , 1 , 0038, "RcmTookReqMarket" )}, // まめきち|商店設置場所決め依頼された
{0x027, new EventFlagPlayer(0 , 1 , 0039, "RcmDeclinedMarketReq" )}, // まめきち|商店設置場所決め依頼を断ったことある
{0x028, new EventFlagPlayer(0 , 1 , 0040, "DoneCharacterCreation" )}, // キャラメイク完了(アカウント引っ越し判定用)
{0x028, new EventFlagPlayer(0 , 1 , 0040, "DoneCharacterCreation" )}, // キャラメイク完了
{0x029, new EventFlagPlayer(0 , 1 , 0041, "RcmNoTurnipSellToday" )}, // まめきち|カブ買取不可の説明今日受けた?
{0x02C, new EventFlagPlayer(0 , 1 , 0044, "ValidatePlayerSaveFlag" )}, // プレイヤーセーブデータが有効化された
{0x02D, new EventFlagPlayer(0 , 1 , 0045, "MakeVillagePlayerFlag" )}, // 村民代表か?
@@ -61,6 +61,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x030, new EventFlagPlayer(0 , 1 , 0048, "HappyHomeMission1" )}, // ハッピーホームでミッション1をクリヤーした
{0x033, new EventFlagPlayer(0 , 1 , 0051, "OccurrenceCoinStone" )}, // コイン岩を発生させたか
{0x034, new EventFlagPlayer(0 , 1 , 0052, "HappyHomeMission2" )}, // ハッピーホームでミッション2をクリヤーした
{0x035, new EventFlagPlayer(0 , 1 , 0053, "SeoRejectFlag" )}, // ラコスケ|ホタテ渡すの断った?
{0x036, new EventFlagPlayer(0 , 1 , 0054, "HappyHomeMission3" )}, // ハッピーホームでミッション3をクリヤーした
{0x03B, new EventFlagPlayer(0 , 999 , 0059, "CatchFishFesCount" )}, // つり大会|保持している大会ポイント
{0x03C, new EventFlagPlayer(0 , 999 , 0060, "CatchInsectFesCount" )}, // ムシとり大会|保持している大会ポイント
@@ -85,7 +86,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x050, new EventFlagPlayer(0 , 1 , 0080, "BirthdayPNotPresentFlag" )}, // プレイヤー誕生日|プレゼントもらえなかった?
{0x052, new EventFlagPlayer(0 , 1 , 0082, "SickQuestFirst" )}, // 病気クエストをクリアしたことがあるか?
{0x053, new EventFlagPlayer(0 , 1 , 0083, "TotakekeTalkBeforeFlag" )}, // とたけけ|今までに会話したことある?
{0x054, new EventFlagPlayer(0 , 1 , 0084, "JohnnyTalkBeforeFlag" )}, // ジョニー|今までに会話したことある?
{0x054, new EventFlagPlayer(0 , 1 , 0084, "JohnnyTalkBeforeFlag" )}, // ジョニー|今までに会話したことある?(海賊ジョニーは別フラグ)
{0x055, new EventFlagPlayer(0 , 1 , 0085, "KotonoTalkBeforeFlag" )}, // ことの|今までに会話したことある?
{0x056, new EventFlagPlayer(0 , 1 , 0086, "RollanTalkBeforeFlag" )}, // ローラン|今までに会話したことある?
{0x058, new EventFlagPlayer(0 , 1 , 0088, "TunekichiTalkBefore" )}, // つねきち|今までに会話したことある?
@@ -114,8 +115,6 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x07E, new EventFlagPlayer(0 , 1 , 0126, "SzaGotDiyRecipe001" )}, // しずえ|しずえDIYレシピ1もらった
{0x07F, new EventFlagPlayer(0 , 1 , 0127, "OwlGotDiyRecipe001" )}, // フータ|フータDIYレシピ1もらった
{0x080, new EventFlagPlayer(0 , 1 , 0128, "TownNewsHeard1st" )}, // 村内放送|村内放送を聞いた事がある?
{0x081, new EventFlagPlayer(0 , 1 , 0129, "MainmenuLifeSupportTown" )}, // スマホUI|くらしホットライン機能追加(村づくり)
{0x082, new EventFlagPlayer(0 , 1 , 0130, "MainmenuLifeSupportRnd" )}, // スマホUI|くらしホットライン機能追加(ランダム)
{0x083, new EventFlagPlayer(0 , 1 , 0131, "GyroidPlazaTalk1st" )}, // 募金ハニワくん|広場募金ハニワくんと話した?
{0x084, new EventFlagPlayer(0 , 1 , 0132, "PlayerLoanRepaying" )}, // ローン返済中?
{0x085, new EventFlagPlayer(0 , 1 , 0133, "PlayerLoanFinish1st" )}, // ローン完済した?
@@ -155,6 +154,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x0B6, new EventFlagPlayer(0 , 1 , 0182, "SzaHeardSonkatsuExplain" )}, // しずえ|村活のことの説明聞いた?
{0x0B7, new EventFlagPlayer(0 , 1 , 0183, "SzaHeardMuraokoshiExplain" )}, // しずえ|村おこしのことの説明聞いた?
{0x0B8, new EventFlagPlayer(0 , 1 , 0184, "SzaHeardAboutHousingKit" )}, // たぬきち|土地確保解禁の説明聞いた?
{0x0BA, new EventFlagPlayer(0 , 1 , 0186, "SeoFirstFlag" )}, // ラコスケ|ホタテを渡したことある?
{0x0BF, new EventFlagPlayer(0 , 1 , 0191, "FoxTalkTodayFlag" )}, // つねきち|今日つねきちと会話した?
{0x0C0, new EventFlagPlayer(0 , 1 , 0192, "FoxBuyTodayFlag" )}, // つねきち|今日いなりマーケットで買い物した?
{0x0C1, new EventFlagPlayer(0 , 1 , 0193, "FoxBuyArtTodayFlag" )}, // つねきち|今日いなりマーケットで美術品買った?
@@ -219,7 +219,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x116, new EventFlagPlayer(0 , 1 , 0278, "RcoDeclinedMuseumReq" )}, // たぬきち|博物館設置場所決め依頼を断ったことある
{0x11C, new EventFlagPlayer(0 , 1 , 0284, "RcmDeclinedQuestReq" )}, // まめきち|商店建築の材料集め依頼を断ったことがある
{0x11D, new EventFlagPlayer(0 , 1 , 0285, "RcmTookQuestReq" )}, // まめきち|商店建築の材料集め依頼された
{0x11E, new EventFlagPlayer(0 , 1 , 0286, "JohnnyAnotherPlayerClearFlag" )}, // ジョニー|クエスト発生後に他のプレイヤーがクリアした?
{0x11E, new EventFlagPlayer(0 , 1 , 0286, "JohnnyAnotherPlayerClearFlag" )}, // ジョニー|クエスト発生後に他のプレイヤーがクリアした?(海賊ジョニーは別フラグ)
{0x124, new EventFlagPlayer(0 , 1 , 0292, "NnpcFinishHintTalk" )}, // NPCの序盤ヒント会話を聞き終えた
{0x12A, new EventFlagPlayer(0 , 11 , 0298, "HgsCloseness" )}, // あさみ|あさみとの親密度
{0x12B, new EventFlagPlayer(0 , 1 , 0299, "HgsTalkTodayFlag" )}, // あさみ|今日すでに会話した?
@@ -267,13 +267,11 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x15D, new EventFlagPlayer(0 , 1 , 0349, "Mobile1stBoot_Encyclopedia" )}, // スマホアプリ初起動|いきもの図鑑
{0x15E, new EventFlagPlayer(0 , 1 , 0350, "Mobile1stBoot_DIYrecipe" )}, // スマホアプリ初起動|DIYレシピ
{0x15F, new EventFlagPlayer(0 , 1 , 0351, "Mobile1stBoot_OnlineShopping" )}, // スマホアプリ初起動|たぬきショッピング
{0x160, new EventFlagPlayer(0 , 1 , 0352, "Mobile1stBoot_MobileBank" )}, // スマホアプリ初起動|たぬきバンク
{0x161, new EventFlagPlayer(0 , 1 , 0353, "Mobile1stBoot_Mydesign" )}, // スマホアプリ初起動|マイデザイン
{0x162, new EventFlagPlayer(0 , 1 , 0354, "Mobile1stBoot_SharePlay" )}, // スマホアプリ初起動|住人呼び出し
{0x163, new EventFlagPlayer(0 , 1 , 0355, "Mobile1stBoot_BestFriend" )}, // スマホアプリ初起動|ベストフレンド
{0x164, new EventFlagPlayer(0 , 1 , 0356, "Mobile1stBoot_Passport" )}, // スマホアプリ初起動|パスポート
{0x165, new EventFlagPlayer(0 , 1 , 0357, "Mobile1stBoot_Map" )}, // スマホアプリ初起動|マップ
{0x166, new EventFlagPlayer(0 , 1 , 0358, "Mobile1stBoot_Manual" )}, // スマホアプリ初起動|生活のしおり
{0x167, new EventFlagPlayer(0 , 1 , 0359, "Mobile1stBoot_SOS" )}, // スマホアプリ初起動|SOS
{0x168, new EventFlagPlayer(0 , 1 , 0360, "RctTalkBeforeFalg" )}, // つぶきち|オートセーブ解禁以降、会話したことあるか?
{0x169, new EventFlagPlayer(0 , 255 , 0361, "AmountHeardPublicAnnouncement" )}, // 島内放送を聞いた回数
@@ -301,8 +299,9 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x180, new EventFlagPlayer(0 , 7 , 0384, "RcoMachineDailyLoginDays" )}, // タヌポート|連続ログインカウント
{0x181, new EventFlagPlayer(0 , 1 , 0385, "RcoMachineDailyLoginCheck" )}, // タヌポート|連続ログインチェック
{0x182, new EventFlagPlayer(0 , 1 , 0386, "RcoMachineEnableExchange" )}, // タヌポート|マイル交換開始の説明聞いた?
{0x183, new EventFlagPlayer(0 , 16 , 0387, "JohnnyPartsCount" )}, // ジョニー|渡したパーツの個数
{0x183, new EventFlagPlayer(0 , 16 , 0387, "JohnnyPartsCount" )}, // ジョニー|渡したパーツの個数(海賊ジョニーは別フラグ)
{0x184, new EventFlagPlayer(0 , 9 , 0388, "BeyDaily_QuestCount" )}, // うおまさJr|指定サイズの魚を釣り上げた回数
{0x185, new EventFlagPlayer(0 , 1 , 0389, "TalkRumorPActionTodayAnyone" )}, // 今日RumorP_Action現在プレイヤーを聞いたか
{0x186, new EventFlagPlayer(0 , 1 , 0390, "TalkRumorPFavoriteTodayAnyone" )}, // 今日誰かにRumorP_Favoriteを聞いたか
{0x188, new EventFlagPlayer(0 , 1 , 0392, "IsToolShortcutManualOpen" )}, // 道具ショートカット説明解禁済か?
{0x189, new EventFlagPlayer(0 , 1 , 0393, "RcoMachineExplainAboutPlaneTicket" )}, // タヌポート|マイル航空券の説明聞いた?
@@ -333,7 +332,6 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x1A9, new EventFlagPlayer(0 , 100 , 0425, "CatchFishContinueCount" )}, // つり|逃げられずに釣り上げた回数
{0x1AA, new EventFlagPlayer(0 , 1 , 0426, "FriendMailSendEnable" )}, // メッセージカード|フレンドへの送信解禁
{0x1AC, new EventFlagPlayer(0 , 1 , 0428, "BeyDaily_TalkFirstDay" )}, // うおまさJr|今回の来訪中に話した?
{0x1AD, new EventFlagPlayer(0 , 1 , 0429, "TkkBirthdayLiveFinish" )}, // とたけけ|バースデーライブが終わって帰る予約
{0x1AE, new EventFlagPlayer(0 , 20 , 0430, "PrayStarToday" )}, // 今日祈った回数
{0x1AF, new EventFlagPlayer(0 , 40 , 0431, "StarPieceGrowCount" )}, // 星素材発生カウンタ
{0x1B0, new EventFlagPlayer(0 , 1 , 0432, "BeyDaily_QuestStart" )}, // うおまさJr|クエスト申し込みした?
@@ -448,7 +446,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x230, new EventFlagPlayer(0 , 1 , 0560, "AddHairStyle2" )}, // 『クールなヘアアレンジ』解禁
{0x231, new EventFlagPlayer(0 , 1 , 0561, "AddHairStyle3" )}, // 寝ぐせ解禁
{0x232, new EventFlagPlayer(0 , 1 , 0562, "TanuportAmiiboBromideUnlock" )}, // タヌポート|amiibo ブロマイド機能を解禁
{0x233, new EventFlagPlayer(0 , 1 , 0563, "AddHairColor" )}, // 追加ヘアカラー解禁
{0x233, new EventFlagPlayer(0 , 1 , 0563, "AddHairColor" )}, // タヌポート|追加ヘアカラー解禁
{0x234, new EventFlagPlayer(0 , 1 , 0564, "EnableDiyRemake" )}, // DIY作業台|リメイク解禁
{0x235, new EventFlagPlayer(0 , 1 , 0565, "GetLicenseGrdStone" )}, // 工事ライセンス|道路工事:石だたみ解禁
{0x236, new EventFlagPlayer(0 , 1 , 0566, "GetLicenseGrdBrick" )}, // 工事ライセンス|道路工事:レンガの道解禁
@@ -564,14 +562,14 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x2AA, new EventFlagPlayer(0 , 1 , 0682, "StandByPhoneCallPrintService" )}, // 電話デモ|プリントサービス入電するか?
{0x2AB, new EventFlagPlayer(0 , 1 , 0683, "StandByPhoneCallSharePlay" )}, // 電話デモ|おすそわけ解禁入電するか?
{0x2AC, new EventFlagPlayer(0 , 1 , 0684, "StandByPhoneCallPurchaseBox" )}, // 電話デモ|買取BOX入金電話するか
{0x2AD, new EventFlagPlayer(0 , 1 , 0685, "HeardAboutFreeDKeywordA" )}, // 肩書会話|今日同じ島のPの肩書会話を聞いた
{0x2AE, new EventFlagPlayer(0 , 1 , 0686, "HeardAboutFreeDKeywordB" )}, // 肩書会話|今日他の島のPの肩書会話を聞いた
{0x2AF, new EventFlagPlayer(0 , 1 , 0687, "HeardAboutFreeDKeywordC" )}, // 肩書会話|今日訪問先のPの肩書会話を聞いた
{0x2AD, new EventFlagPlayer(0 , 3 , 0685, "HeardAboutFreeDKeywordA" )}, // 肩書会話|今日同じ島のPの肩書会話を聞いた
{0x2AE, new EventFlagPlayer(0 , 3 , 0686, "HeardAboutFreeDKeywordB" )}, // 肩書会話|今日他の島のPの肩書会話を聞いた
{0x2AF, new EventFlagPlayer(0 , 3 , 0687, "HeardAboutFreeDKeywordC" )}, // 肩書会話|今日訪問先のPの肩書会話を聞いた
{0x2B0, new EventFlagPlayer(0 , 1 , 0688, "RcoMoveSomeBuiding" )}, // たぬきち|なにかの建物の移設を依頼しているか?
{0x2B1, new EventFlagPlayer(0 , 1 , 0689, "BuiltMyHome" )}, // マイホームが建った
{0x2B2, new EventFlagPlayer(0 , 1 , 0690, "RcoMoveHousingSetSomeBuild" )}, // たぬきち|移設用のハウジングキット設置した
{0x2B4, new EventFlagPlayer(0 , 1 , 0692, "SzaIslandEvaluation5star1st" )}, // しずえ|島の評価で初めて5つ星とった
{0x2B5, new EventFlagPlayer(0 , 1 , 0693, "JohnnySitUpBeforeFlag" )}, // ジョニー|今までに起こしたことある?
{0x2B5, new EventFlagPlayer(0 , 1 , 0693, "JohnnySitUpBeforeFlag" )}, // ジョニー|今までに起こしたことある?(海賊ジョニーは別フラグ)
{0x2B6, new EventFlagPlayer(0 , 1 , 0694, "CampFirstTalk_FirstVisitor" )}, // キャンパーNPCとの初回会話を済ませた(初回キャンパー用)
{0x2B7, new EventFlagPlayer(0 , 1 , 0695, "BocAllowAddBuyCount" )}, // カブリバ孫|カブ購入回数加算許可
{0x2B8, new EventFlagPlayer(0 , 10 , 0696, "BocBuyCount" )}, // カブリバ孫|カブ購入回数
@@ -641,7 +639,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x309, new EventFlagPlayer(0 , 20 , 0777, "CountGotTrash" )}, // ゴミを釣り上げて入手した回数カウント
{0x30A, new EventFlagPlayer(0 , 10 , 0778, "CountGotTrash_Can" )}, // あきかんを釣り上げて入手した回数カウント
{0x30B, new EventFlagPlayer(0 , 10 , 0779, "CountGotTrash_Tire" )}, // タイヤを釣り上げて入手した回数カウント
{0x30C, new EventFlagPlayer(0 , 50 , 0780, "JohnnyHelpCount" )}, // ジョニー|助けた回数
{0x30C, new EventFlagPlayer(0 , 50 , 0780, "JohnnyHelpCount" )}, // ジョニー|助けた回数(海賊ジョニーは別フラグ)
{0x30D, new EventFlagPlayer(0 , 1 , 0781, "CatchtFesBox_Valid" )}, // ムシサカナBOXの中身をキープ
{0x30E, new EventFlagPlayer(0 , 1 , 0782, "TreasurePlayerWin" )}, // 宝探しプレイヤー勝利
{0x30F, new EventFlagPlayer(0 , 1 , 0783, "PAnnounce_SummerShell" )}, // 島内放送|季節素材告知_夏_なつのかいがら
@@ -835,6 +833,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x3F5, new EventFlagPlayer(0 , 1 , 1013, "NoticeAboutSmartPhoneCase" )}, // 作業台リメイク|スマホケースの説明ダイアログ見た
{0x3F6, new EventFlagPlayer(0 , 1 , 1014, "AlwJuneBridePleaseShootFlag" )}, // リサ/ジューンブライド|写真も撮ってと言われた
{0x3F7, new EventFlagPlayer(0 , 1 , 1015, "OwlPaintingQuestReminder" )}, // フータ|その日、美術品提出の催促を受けた
{0x3F8, new EventFlagPlayer(0 , 1 , 1016, "OwlShowDiveFishReport" )}, // フータ|海の幸発見の報告を受けた
{0x3F9, new EventFlagPlayer(0 , 1 , 1017, "DocUsePurchaseServiceFalg" )}, // ロドリー|買取サービス使った?
{0x3FA, new EventFlagPlayer(0 , 1 , 1018, "UsePurchaseBOXFalg" )}, // 買取BOX使った
{0x3FB, new EventFlagPlayer(0 , 1 , 1019, "FoxForcedTalkTodayFlag" )}, // つねきち|今日お店で入店時の強制会話した?
@@ -855,11 +854,14 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x40D, new EventFlagPlayer(0 , 1 , 1037, "AlpJuneBrideGetStickFrag" )}, // カイゾー/ジューンブライド|今年ステッキもらった?
{0x40F, new EventFlagPlayer(0 , 10 , 1039, "LastApproachVillagerIndex" )}, // 最後にアプローチ会話をしたNPCの住人番号
{0x410, new EventFlagPlayer(0 , 1 , 1040, "StandByPhoneCallJuneBride" )}, // 電話デモ|ジューンブライド告知電話するか?
{0x412, new EventFlagPlayer(0 , 1 , 1042, "OwlExplainDiveFishAfterComp" )}, // フータ|コンプ後に海の幸の追加説明を受けた
{0x414, new EventFlagPlayer(0 , 1 , 1044, "AlwJuneBridePartyTalkFlag" )}, // リサ/ジューンブライド|パーティの案内された
{0x415, new EventFlagPlayer(0 , 1 , 1045, "AlwJuneBrideLastDayTalkFlag" )}, // リサ/ジューンブライド|最終日の挨拶された
{0x416, new EventFlagPlayer(0 , 1 , 1046, "VisitFriendMileageGet" )}, // よその島へのおでかけマイルゲット
{0x417, new EventFlagPlayer(0 , 1 , 1047, "AlwJuneBrideBalloonFlag" )}, // リサ/ジューンブライド|バルーン出す状態?
{0x419, new EventFlagPlayer(0 , 1 , 1049, "GstRichItemFlag" )}, // ゆうたろう|高価な品もらった?
{0x41A, new EventFlagPlayer(1 , 1 , 1050, "MyDesignExchangeDiscloseAuthorID" )}, // マイデザイン交換端末|作者IDの公開
{0x41B, new EventFlagPlayer(1 , 1 , 1051, "TapDiscloseDreamLandID" )}, // ゆめみ|夢番地の公開
{0x41C, new EventFlagPlayer(0 , 1 , 1052, "PlayerPocketUIEnableInCommuneIsland" )}, // プレイヤー|コミューン島でのポケットUI解禁
{0x41D, new EventFlagPlayer(0 , 5 , 1053, "GotoMysteryTour" )}, // モーリー|ミステリーツアー島に行った回数
{0x41E, new EventFlagPlayer(0 , 1 , 1054, "EnableGotoRareMysteryTour" )}, // モーリー|ミステリーツアーのレア島に行っていいか?
@@ -868,14 +870,68 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
{0x421, new EventFlagPlayer(0 , 1 , 1057, "FoxPreVisitBuyArtMaxFlag" )}, // つねきち|事前来訪中に2個美術品を買った
{0x424, new EventFlagPlayer(0 , 9999, 1060, "EDDIYFlowerWreathClearYear" )}, // 花を摘んでリースをつくる活動達成年
{0x425, new EventFlagPlayer(0 , 9999, 1061, "EDDIYCorollaClearYear" )}, // 花を摘んで花冠をつくる活動達成年
{0x426, new EventFlagPlayer(0 , 1 , 1062, "GulBQuestStartFlag" )}, // 海賊ジョニー|クエスト開始フラグ
{0x427, new EventFlagPlayer(0 , 1 , 1063, "GulBQuestFinishFlag" )}, // 海賊ジョニー|クエスト完了フラグ
{0x428, new EventFlagPlayer(0 , 1 , 1064, "GulBTalkBeforeFlag" )}, // 海賊ジョニー|今までに会話したことある?
{0x429, new EventFlagPlayer(0 , 1 , 1065, "GulBAnotherPlayerClearFlag" )}, // 海賊ジョニー|クエスト発生後に他のプレイヤーがクリアした?
{0x42A, new EventFlagPlayer(0 , 16 , 1066, "GulBPartsCount" )}, // 海賊ジョニー|渡したパーツの個数
{0x42B, new EventFlagPlayer(0 , 1 , 1067, "GulBSitUpBeforeFlag" )}, // 海賊ジョニー|今までに起こしたことある?
{0x42C, new EventFlagPlayer(0 , 3 , 1068, "InducedNpcNum" )}, // お出かけ先で勧誘したNPCの数
{0x42D, new EventFlagPlayer(0 , 1 , 1069, "TalkFreeMultiDayEventTodayFlag" )}, // 今日、期間型イベント用のFreeFを聞いたか
{0x42E, new EventFlagPlayer(0 , -1 , 1070, "EarthDayBonus" )}, // アースデーの5倍クエストをクリアした日フラグ
{0x42F, new EventFlagPlayer(0 , 1 , 1071, "TalkVillagerClearToday" )}, // 日課あいさつ活動を今日クリア済み
{0x430, new EventFlagPlayer(0 , 1 , 1072, "EarthDayFirstQuestSystem" )}, // アースデーの5倍クエストをまだ出していないシステム用
{0x431, new EventFlagPlayer(0 , 1 , 1073, "EarthDayFirstQuestTalk" )}, // アースデーの5倍クエストをまだ出していない会話用
{0x432, new EventFlagPlayer(0 , 1 , 1074, "SeoExchangeItemToday" )}, // ラコスケ|ホタテをその日渡した?
{0x433, new EventFlagPlayer(0 , 1 , 1075, "MailSendFlag_EarthDayNotice" )}, // 手紙|アースデー導入の手紙を送った?
{0x434, new EventFlagPlayer(0 , 1 , 1076, "PAnnounceMayDayTour" )}, // 島内放送|アースデー初回ログイン時の放送を聞いた?
{0x434, new EventFlagPlayer(0 , 1 , 1076, "PAnnounceMayDayTour" )}, // 島内放送|メーデー初回ログイン時の放送を聞いた?
{0x435, new EventFlagPlayer(0 , 1 , 1077, "DreamFirstExplain" )}, // ゆめみ|DLの初回説明読んだ
{0x436, new EventFlagPlayer(0 , 1 , 1078, "TapDreamFirstTalk" )}, // ゆめみ|初回会話済ませた?
{0x437, new EventFlagPlayer(0 , 50 , 1079, "GulBHelpCount" )}, // 海賊ジョニー|助けた回数
{0x438, new EventFlagPlayer(0 , 1 , 1080, "GulBGetQuestItem" )}, // 海賊ジョニー|クエストアイテムを入手した個数
{0x439, new EventFlagPlayer(0 , 1 , 1081, "HasGottenMarinesuit" )}, // マリンスーツを入手したことがあるか?
{0x43A, new EventFlagPlayer(0 , 1 , 1082, "SeoFirstmeetingFlag" )}, // ラコスケにはじめて会った
{0x43D, new EventFlagPlayer(0 , 1 , 1085, "TalkRumorOActionTodayAnyone" )}, // 今日RumorOP_Action同じ島の住人Pを聞いたか
{0x43E, new EventFlagPlayer(0 , 1 , 1086, "SzaFireworksTalkTodayA" )}, // 花火大会しずえ|今日会話した?(5:00-19:00)
{0x43F, new EventFlagPlayer(0 , 1 , 1087, "SzaFireworksTalkTodayB" )}, // 花火大会しずえ|今日会話した?(19:00-24:00)
{0x440, new EventFlagPlayer(0 , 1 , 1088, "SzaFireworksRewardToday" )}, // 花火大会しずえ|今日「光るアクセサリー」もらった?
{0x443, new EventFlagPlayer(0 , 1 , 1091, "FireworksApproachEnd" )}, // 花火大会|専用アプローチ会話済
{0x444, new EventFlagPlayer(0 , 11 , 1092, "FireworksApproachNpcIndex" )}, // 花火大会|専用アプローチ会話予定NPC住人番号
{0x445, new EventFlagPlayer(0 , 1 , 1093, "FireworksApproachGetFirework" )}, // 花火大会|花火をもらった
{0x446, new EventFlagPlayer(0 , 1 , 1094, "TapDreamTalkToday" )}, // ゆめみ|今日ゆめみ室内を訪れた
{0x447, new EventFlagPlayer(0 , 1 , 1095, "TapULFirstExplain" )}, // ゆめみ|ULの初回説明読んだ
{0x449, new EventFlagPlayer(0 , 1 , 1097, "TapDreamUploadToday" )}, // ゆめみ|今日夢をアップロードした
{0x44A, new EventFlagPlayer(0 , 1 , 1098, "TapDreamDeleteToday" )}, // ゆめみ|今日夢を削除した
{0x451, new EventFlagPlayer(0 , 1 , 1105, "OwlPaintingDiveFish" )}, // フータのうみのさちチュートリアル聞いた?
{0x452, new EventFlagPlayer(0 , 1 , 1106, "PAnnounceFireworksSza1" )}, // 島内放送|花火大会しずえ1回目の放送を聞いた
{0x457, new EventFlagPlayer(0 , 1 , 1111, "FoxFirstTalkFireworksFlag" )}, // つねきち|花火大会で会話したことある?
{0x458, new EventFlagPlayer(0 , 1 , 1112, "CharacterCreationFlag" )}, // 夏パッチ以降でキャラメイク完了したか?
{0x459, new EventFlagPlayer(0 , 1 , 1113, "PublicAnnouncement_DiveFish" )}, // 泳ぎ解禁の島内放送聞いたか?手紙だす?
{0x45A, new EventFlagPlayer(0 , 1 , 1114, "DiveFish_GetLetter" )}, // 初回泳ぎ島内放送聞けず、手紙を受け取った
{0x45B, new EventFlagPlayer(0 , 1 , 1115, "DiveFishPublic_1day" )}, // 初回泳ぎ解禁島内放送を聞いた?
{0x45C, new EventFlagPlayer(0 , 1 , 1116, "DiveFishPublic_2day" )}, // 2日目の泳ぎ解禁島内放送を聞いた?
{0x45D, new EventFlagPlayer(0 , 1 , 1117, "RcmTalkAboutMarinesuitFlag" )}, // まめきち|マリンスーツの説明を聞いた
{0x45E, new EventFlagPlayer(0 , 1 , 1118, "Encylopedia_DiveFishMes" )}, // 夏パッチ後、図鑑開いてうみのさち追加案内を見た
{0x45F, new EventFlagPlayer(0 , 1 , 1119, "MyDesignExchangeExp_v1_4" )}, // マイデザイン交換| 夏パッチ2で追加された機能説明
{0x460, new EventFlagPlayer(0 , 1 , 1120, "MyDesignExchangeExp_NormalUsage" )}, // マイデザイン交換| ノーマル用途追加の説明
{0x461, new EventFlagPlayer(0 , 1 , 1121, "PlayerHouseBuiltToday" )}, // 今日自宅が完成した(今日テント→家になった)
{0x462, new EventFlagPlayer(0 , 1 , 1122, "ReceiveTapBedLetter" )}, // ゆめみからベッド付き手紙を受け取った
{0x463, new EventFlagPlayer(0 , 1 , 1123, "FoxTalkOnlyStandShopFlag" )}, // つねきち|屋台でしか会話したことがない?
{0x465, new EventFlagPlayer(0 , 1 , 1125, "DiveFish_FirstDonation" )}, // 海の幸を初寄贈した
{0x466, new EventFlagPlayer(0 , 1 , 1126, "TapSendThankyouLetter" )}, // ゆめみ|翌日、夢をアップしたお礼の手紙が届くか?
{0x467, new EventFlagPlayer(0 , 9999, 1127, "PickUpDIYGoldCount" )}, // ver1.4.0以降、拾われたことがない金鉱石を拾った回数
{0x468, new EventFlagPlayer(0 , 1 , 1128, "FireworkCannotGetNnpcItemFlag" )}, // 花火大会|一般NPCから受け取り損ねたアイテムがある
{0x46B, new EventFlagPlayer(0 , 7 , 1131, "SurpriseVisitCount" )}, // 突撃訪問発生までのカウント
{0x46C, new EventFlagPlayer(0 , 1 , 1132, "SurpriseVisitDone" )}, // 突撃訪問された事があるか
{0x479, new EventFlagPlayer(0 , 1 , 1145, "SaveDataRestoringSettingNotice" )}, // セーブデータ復元|設定異常検知
{0x47A, new EventFlagPlayer(0 , 1 , 1146, "TapTalkAboutMydesignShowcase" )}, // ゆめみ|マイデザインショーケースについて説明聞いた
{0x47C, new EventFlagPlayer(0 , 1 , 1148, "TapFirstDreamIn" )}, // ゆめみ|夢の中に入ったことがある?
{0x47D, new EventFlagPlayer(0 , 1 , 1149, "TapFirstCheckMydesingShowcase" )}, // ゆめみ|夢の中のマイデザインショーケース端末にアクセスしたことがある?
{0x483, new EventFlagPlayer(0 , 1 , 1155, "SzaFireworksSubmitMyDesignToday" )}, // 花火大会しずえ|今日マイデザイン花火を提出した?
{0x488, new EventFlagPlayer(0 , 1 , 1160, "CalcPastDays" )}, // 経過日数の計算をした
{0x48A, new EventFlagPlayer(0 , 3000, 1162, "FireworksLastApproachYear" )}, // 花火大会|最後にアプローチ挙動をした年
{0x49C, new EventFlagPlayer(0 , 1 , 1180, "TapSelWhereAreHere" )}, // ゆめみ|ここはどこ度選んだらON
{0x4A2, new EventFlagPlayer(0 , 1 , 1186, "Mobile1stBoot_Camera_UnlockKeyGuideOff" )}, // スマホアプリ初起動|カメラアプリにキーガイドOFF追加
};
private const string Unknown = "???";

View File

@@ -59,6 +59,7 @@ public EventFlagVillager(short v1, short v2, ushort index, string name)
{0x02B, new EventFlagVillager(0 , 10 , 0043, "ForceMoveOutVillagerIndex" )}, // 強制転出に指定した住人番号
{0x02C, new EventFlagVillager(0 , 1 , 0044, "DisplayJuneBridePresent" )}, // ジューンブライド | 絵皿を飾るか?
{0x02D, new EventFlagVillager(0 , 7 , 0045, "ProgressDaysJuneBrideParty" )}, // ジューンブライド | 結婚パーティに参加してからの経過日数
{0x031, new EventFlagVillager(0 , 5 , 0049, "EnableConvTalkDaysCount" )}, // 会話のフリを解禁するまでの日数
};
private const string Unknown = "???";

View File

@@ -24,7 +24,7 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
{0x01, new EventFlagVillagerMemoryPlayer(0 , 7 , 001, "ContinuousTalkDays" )}, // 何日連続で話しかけられたか
{0x02, new EventFlagVillagerMemoryPlayer(0 , 1 , 002, "SameLand" )}, // 同じ村に住んでいたことがあるか
{0x03, new EventFlagVillagerMemoryPlayer(0 , 1 , 003, "SetGreeting" )}, // 挨拶を設定したことがある
{0x04, new EventFlagVillagerMemoryPlayer(0 , 1 , 004, "EasterGetRecipeFlag" )}, // イースター|このNPCからリアクション会話でレシピを受け取った
{0x04, new EventFlagVillagerMemoryPlayer(0 , 1 , 004, "EasterGetRecipeFlag" )}, // イースター|今日このNPCからレシピを受け取った
{0x05, new EventFlagVillagerMemoryPlayer(0 , 1 , 005, "TalkProgressMuseumBuilt2" )}, // 博物館2への拡張に関するFreeH_Progressを聞いたか
{0x06, new EventFlagVillagerMemoryPlayer(0 , 1 , 006, "NextMoveOutTalk" )}, // 引越ししたい会話したか
{0x07, new EventFlagVillagerMemoryPlayer(0 , 1 , 007, "TalkMoveOut" )}, // 引越していく状態で会話したか
@@ -35,6 +35,8 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
{0x0C, new EventFlagVillagerMemoryPlayer(0 , 7 , 012, "TalkCountInNpcHouseToday" )}, // 今日NPCの家での会話回数
{0x0D, new EventFlagVillagerMemoryPlayer(0 , 1 , 013, "HasAcquaintanceship" )}, // 面識ありか
{0x0E, new EventFlagVillagerMemoryPlayer(0 , 1 , 014, "SitBenchFlag" )}, // NPCをベンチに座らせる
{0x0F, new EventFlagVillagerMemoryPlayer(0 , 1 , 015, "TalkInDream" )}, // 今回の夢の中への訪問で話をしたか
{0x11, new EventFlagVillagerMemoryPlayer(0 , 255, 017, "PastCountFromLastVisitPlayerHouse" )}, // 最後にP宅を訪問してからの経過日数
{0x12, new EventFlagVillagerMemoryPlayer(0 , 1 , 018, "TalkedAsSameVillageResident" )}, // 同じ村の住人として会話した
{0x13, new EventFlagVillagerMemoryPlayer(0 , 1 , 019, "InputGreeting" )}, // 挨拶を設定した
{0x14, new EventFlagVillagerMemoryPlayer(0 , 1 , 020, "InputPhraseMemory" )}, // 口癖を設定した
@@ -94,7 +96,7 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
{0x4C, new EventFlagVillagerMemoryPlayer(0 , 1 , 076, "TalkSpotNow" )}, // 今、Spotを聞いたか
{0x4E, new EventFlagVillagerMemoryPlayer(0 , 1 , 078, "TalkItemNNow" )}, // 今、ItemNを聞いたか
{0x4F, new EventFlagVillagerMemoryPlayer(0 , 1 , 079, "TalkItemPNow" )}, // 今、ItemPを聞いたか
{0x50, new EventFlagVillagerMemoryPlayer(0 , 1 , 080, "TalkRumorOActionToday" )}, // 今日RumorOP_Action同じ島の住人Pを聞いたか
{0x50, new EventFlagVillagerMemoryPlayer(0 , 1 , 080, "TalkRumorOActionToday" )}, // (ボツ)今日RumorOP_Action同じ島の住人Pを聞いたか
{0x51, new EventFlagVillagerMemoryPlayer(0 , 1 , 081, "TalkRumorVActionToday" )}, // 今日RumorOP_Actionビジターを聞いたか
{0x52, new EventFlagVillagerMemoryPlayer(0 , 1 , 082, "TalkRumorOFavoriteToday" )}, // 今日RumorO_Favoriteを聞いたか
{0x53, new EventFlagVillagerMemoryPlayer(0 , 1 , 083, "TalkRumorNToday" )}, // 今日このNPCからRumorN1を聞いたか
@@ -103,6 +105,7 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
{0x56, new EventFlagVillagerMemoryPlayer(0 , 1 , 086, "TalkSnpcNow" )}, // 今日Snpcを聞いたか
{0x57, new EventFlagVillagerMemoryPlayer(0 , 1 , 087, "TalkFreeFNow" )}, // 今、FreeFを聞いたか
{0x58, new EventFlagVillagerMemoryPlayer(0 , 1 , 088, "TalkFreeGNow" )}, // 今、FreeGを聞いたか
{0x59, new EventFlagVillagerMemoryPlayer(0 , 1 , 089, "FireworksCannotGetNnpcItemFlag" )}, // 花火大会|このNPCから受け取り損ねたアイテムがある
{0x5A, new EventFlagVillagerMemoryPlayer(0 , 1 , 090, "TalkHHAToday" )}, // 今日FreeE_HHAを聞いたか
{0x5B, new EventFlagVillagerMemoryPlayer(0 , 5 , 091, "TalkReSelectLast" )}, // 再抽選前に聞いたファイル識別番号
{0x5C, new EventFlagVillagerMemoryPlayer(0 , 1 , 092, "HHABuildCelebraition" )}, // 増築祝いの手紙を出した
@@ -122,7 +125,7 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
{0x6A, new EventFlagVillagerMemoryPlayer(0 , 1 , 106, "TalkProgressBridgeBuilt" )}, // 初めての橋の完成に関するFreeH_Progressを聞いたか
{0x6B, new EventFlagVillagerMemoryPlayer(0 , 1 , 107, "TalkProgressSlopeBuilt" )}, // 初めての坂の完成に関するFreeH_Progressを聞いたか
{0x6C, new EventFlagVillagerMemoryPlayer(0 , 1 , 108, "TalkProgressOtherPlayerMoveIn" )}, // 他プレイヤーの移住に関するFreeH_Progressを聞いたか
{0x6D, new EventFlagVillagerMemoryPlayer(0 , 1 , 109, "TalkRumorPActionToday" )}, // 今日RumorP_Action現在プレイヤーを聞いたか
{0x6D, new EventFlagVillagerMemoryPlayer(0 , 1 , 109, "TalkRumorPActionToday" )}, // (ボツ)今日RumorP_Action現在プレイヤーを聞いたか
{0x6E, new EventFlagVillagerMemoryPlayer(0 , 1 , 110, "FirstNpcEarlyAcquaintanceFlag" )}, // NPC宅がテントだった頃からの知り合い
{0x6F, new EventFlagVillagerMemoryPlayer(0 , 1 , 111, "TalkSickCured" )}, // Curedを聞いたか
{0x70, new EventFlagVillagerMemoryPlayer(0 , 1 , 112, "StandingUpFlag" )}, // NPCを立たせる
@@ -141,6 +144,7 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
{0x7D, new EventFlagVillagerMemoryPlayer(0 , 1 , 125, "FriendshipBecomeAcqH" )}, // 親密度が知人(高)に到達済み
{0x7E, new EventFlagVillagerMemoryPlayer(0 , 3 , 126, "DC_NPCBirthdayFlag" )}, // NPC誕生日|おでかけ先の村でもらうお返しの種類
{0x7F, new EventFlagVillagerMemoryPlayer(0 , 1 , 127, "EasterCannotGetNnpcRecipeFlag" )}, // イースター|このNPCから受け取り損ねたレシピがある
{0x83, new EventFlagVillagerMemoryPlayer(0 , 1 , 131, "FireworksGetItemFlag" )}, // 花火大会|このNPCからリアクション会話で花火を受け取った
};
private const string Unknown = "???";

View File

@@ -183,7 +183,6 @@ public bool GetIsSatisfied(in int index, in uint count)
{0x5F, new LifeSupportAchievement(095, 5, 0005, 0010, 0020, 0030, 0040, -1, -1, "FillSeafoodList" )}, // 海の幸図鑑を埋めた数
{0x60, new LifeSupportAchievement(096, 3, 0001, 0010, 0020, 0000, 0000, -1, -1, "GiveScallopsToSeo" )}, // ラコスケにホタテを渡した回数
{0x62, new LifeSupportAchievement(098, 5, 0005, 0050, 0250, 1000, 2500, -1, -1, "CatchSeafood" )}, // 海の幸をGETした回数
};
public static string GetName(int index, uint count, IReadOnlyDictionary<string, string> str)

View File

@@ -246,6 +246,9 @@ public static ushort[] GetItemMenuIconArray(string pathBCSV, string fn = "ItemPa
var ival = ushort.Parse(id);
var type = bcsv.ReadValue(i, fType).TrimEnd('\0');
if (type.StartsWith("0x"))
type = $"_{type}"; // enum name can't start with number
if (!Enum.TryParse<ItemMenuIconType>(type, out var k))
throw new InvalidEnumArgumentException($"{type} is not a known enum value @ index {i}. Update the enum index first.");
types.Add(ival, k);