mirror of
https://github.com/marcrobledo/savegame-editors.git
synced 2025-10-06 00:12:46 +02:00
[Nintendogs + Cats] Various changes
* Converted images to webp * Improved sprite system * Sorted sprites * Minor code cleanup * Add "Display Case" item
This commit is contained in:
Binary file not shown.
Before Width: | Height: | Size: 487 B |
BIN
nintendogs+cats/icons.webp
Normal file
BIN
nintendogs+cats/icons.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 390 B |
@@ -1,335 +1,328 @@
|
||||
// Hex, Name, Sprite pos X, Sprite pos Y, icon (1=dog, 2=cat, 3=music, 4=recycle)
|
||||
SavegameEditor.Constants.items = {
|
||||
accessories: [
|
||||
[ '0x15F', 'Red Leather Collar', -128, -768 ],
|
||||
[ '0x160', 'Blue Leather Collar', -192, -128 ],
|
||||
[ '0x161', 'Yellow Leather Collar', -832, -1024 ],
|
||||
[ '0x162', 'Green Leather Collar', -896, -384 ],
|
||||
[ '0x163', 'Brown Leather Collar', 0, -192 ],
|
||||
[ '0x164', 'White Leather Collar', -640, -960 ],
|
||||
[ '0x165', 'Black Leather Collar', -320, -64 ],
|
||||
[ '0x166', 'Purple Leather Collar', -192, -704 ],
|
||||
[ '0x17A', 'Black Polka-Dot Collar', -448, -64 ],
|
||||
[ '0x17C', 'Red Polka-Dot Collar', -320, -768 ],
|
||||
[ '0x17B', 'Dot Collar', -128, -320 ],
|
||||
[ '0x170', 'Camo Collar', -384, -192 ],
|
||||
[ '0x18E', 'Rainbow Collar', -384, -704 ],
|
||||
[ '0x190', 'Striped Collar', -192, -896 ],
|
||||
[ '0x186', 'Woven Collar', -512, -1024 ],
|
||||
[ '0x17D', 'Flower Collar', -128, -384 ],
|
||||
[ '0x16F', 'Beaded Collar', -576, 0 ],
|
||||
[ '0x16C', 'Hibiscus Flower Lei', -320, -448 ],
|
||||
[ '0x183', 'Star Collar', -896, -832 ],
|
||||
[ '0x182', 'Heart Collar', -128, -448 ],
|
||||
[ '0x16B', 'Lace Necklace', -1024, -448 ],
|
||||
[ '0x177', 'Leather Necklace', -192, -512 ],
|
||||
[ '0x172', 'Red Bell Collar', -640, -704 ],
|
||||
[ '0x173', 'Blue Bell Collar', -768, -64 ],
|
||||
[ '0x174', 'Green Bell Collar', -576, -384 ],
|
||||
[ '0x175', 'Brown Bell Collar', -896, -128 ],
|
||||
[ '0x17E', 'Green Japanese Print Collar', -768, -384 ],
|
||||
[ '0x180', 'Red Japanese Print Collar', 0, -768 ],
|
||||
[ '0x17F', 'Blue Japanese Print Collar', -64, -128 ],
|
||||
[ '0x168', 'Red Spiked Collar', -448, -768 ],
|
||||
[ '0x167', 'Black Spiked Collar', -512, -64 ],
|
||||
[ '0x189', 'Faux-Python Collar', -640, -320 ],
|
||||
[ '0x188', 'Faux-Leopard Collar', -576, -320 ],
|
||||
[ '0x18A', 'Faux-Zebra Collar', -704, -320 ],
|
||||
[ '0x187', 'Faux-Crocodile Collar', -512, -320 ],
|
||||
[ '0x184', 'Southwest Collar', -704, -832 ],
|
||||
[ '0x178', 'Glitzy Collar', -448, -384 ],
|
||||
[ '0x176', 'Metal-Link Necklace', 0, -576 ],
|
||||
[ '0x18F', 'Silver Necklace', -384, -832 ],
|
||||
[ '0x18D', 'Platinum Collar', -640, -640 ],
|
||||
[ '0x171', 'Classy Collar', -1024, -192 ],
|
||||
[ '0x18C', 'Pearl Necklace', -832, -576 ],
|
||||
[ '0x18B', 'Black Pearl Necklace', -384, -64 ],
|
||||
[ '0x179', 'Diamond Collar', -640, -256 ],
|
||||
[ '0x181', 'Royal Heirloom Necklace', -1024, -768 ],
|
||||
[ '0x193', 'Victory Collar', -128, -960 ],
|
||||
[ '0x16D', "Kid's Bandanna", -768, -448 ],
|
||||
[ '0x16A', 'Fringed Leather Collar', -384, -384 ],
|
||||
[ '0x16E', 'Bow Tie', -768, -128 ],
|
||||
[ '0x169', "Chef's Scarf", -832, -192 ],
|
||||
[ '0x191', "Lady's Scarf", 0, -512 ],
|
||||
[ '0x192', "Man's Scarf", -576, -512 ],
|
||||
[ '0x185', 'Red Woolly Scarf', -704, -768 ],
|
||||
[ '0x1C9', 'Red Bows', -704, -704 ],
|
||||
[ '0x1CA', 'Yellow Bows', -640, -1024 ],
|
||||
[ '0x1CB', 'Red Chequered Bows', -832, -704 ],
|
||||
[ '0x1CC', 'Blue Chequered Bows', -896, -64 ],
|
||||
[ '0x1CD', 'Pink Polka-Dot Bows', -256, -640 ],
|
||||
[ '0x1CE', 'Blue Polka-Dot Bows', -384, -128 ],
|
||||
[ '0x1CF', 'Purple Pearl Bows', -256, -704 ],
|
||||
[ '0x1D0', 'Green Pearl Bows', -960, -384 ],
|
||||
[ '0x1D1', 'Black Striped Bows', -576, -64 ],
|
||||
[ '0x1D2', 'Red Striped Bows', -512, -768 ],
|
||||
[ '0x1D3', 'Tricolour Bows', 0, -960 ],
|
||||
[ '0x1D4', 'Fancy Bow', -320, -320 ],
|
||||
[ '0x1C8', 'Red Rose', -384, -768 ],
|
||||
[ '0x1C7', 'Pink Rose', -384, -640 ],
|
||||
[ '0x1C5', 'Red Hibiscus Flower', -1024, -704 ],
|
||||
[ '0x1C4', 'White Hibiscus Flower', -512, -960 ],
|
||||
[ '0x1C6', 'Sunflower', -448, -896 ],
|
||||
[ '0x19F', 'Red Cap', -768, -704 ],
|
||||
[ '0x19E', 'Yellow Cap', -704, -1024 ],
|
||||
[ '0x1A0', 'Black Cap', -64, -64 ],
|
||||
[ '0x1A9', 'Newsboy Cap', -384, -576 ],
|
||||
[ '0x1B1', 'Leather Cap', -64, -512 ],
|
||||
[ '0x196', 'Red Woolly Hat', -640, -768 ],
|
||||
[ '0x194', 'Yellow Woolly Hat', -1088, -64 ],
|
||||
[ '0x195', 'Black Woolly Hat', -704, -64 ],
|
||||
[ '0x197', 'White Woolly Hat', 0, -1024 ],
|
||||
[ '0x1B0', 'Beanie', -640, 0 ],
|
||||
[ '0x1A3', 'Beret', -896, 0 ],
|
||||
[ '0x1B9', 'Sun Visor', -384, -896 ],
|
||||
[ '0x1B2', 'Straw Hat', -64, -896 ],
|
||||
[ '0x1A5', 'White Bucket Hat', -448, -960 ],
|
||||
[ '0x1A6', 'Black Bucket Hat', 0, -64 ],
|
||||
[ '0x1A7', 'Beige Bucket Hat', -768, 0 ],
|
||||
[ '0x19B', 'Brown Safari Hat', -64, -192 ],
|
||||
[ '0x19C', 'White Safari Hat', -896, -960 ],
|
||||
[ '0x1B7', 'Black Top Hat', -640, -64 ],
|
||||
[ '0x1B8', 'White Top Hat', -1024, -960 ],
|
||||
[ '0x1A4', 'Fedora', -896, -320 ],
|
||||
[ '0x1A8', 'Bonnet', -640, -128 ],
|
||||
[ '0x1AC', 'Feathered Green Hat', -768, -320 ],
|
||||
[ '0x1AD', 'Feathered Purple Hat', -832, -320 ],
|
||||
[ '0x1B5', 'Pointy Hat', -768, -640 ],
|
||||
[ '0x1B6', "Santa's Hat", -192, -832 ],
|
||||
[ '0x1AA', "Chef's Hat", -768, -192 ],
|
||||
[ '0x1BB', 'Viking Hat', -320, -960 ],
|
||||
[ '0x1B4', 'Party Hat', -704, -576 ],
|
||||
[ '0x19D', 'Headpiece', 0, -448 ],
|
||||
[ '0x1AF', 'Stunt Helmet', -320, -896 ],
|
||||
[ '0x1A2', 'Origami Hat', -640, -576 ],
|
||||
[ '0x19A', 'Pompadour Wig', -832, -640 ],
|
||||
[ '0x1B3', 'Bowl Cut Wig', -832, -128 ],
|
||||
[ '0x1A1', 'Rainbow Wig', -576, -704 ],
|
||||
[ '0x1AE', 'Strawberry Hood', -128, -896 ],
|
||||
[ '0x1BA', 'Tiara', -896, -896 ],
|
||||
[ '0x1AB', 'Crown', -320, -256 ],
|
||||
[ '0x1BC', 'Victory Crown', -192, -960 ],
|
||||
[ '0x198', "Mario's Hat", -768, -512 ],
|
||||
[ '0x199', "Luigi's Hat", -512, -512 ],
|
||||
[ '0x1BD', 'Toad Hat', -1024, -896 ],
|
||||
[ '0x1BF', "Hero's Hat", -256, -448 ],
|
||||
[ '0x1C1', 'Red Pikmin Hat', -256, -768 ],
|
||||
[ '0x1C2', 'Blue Pikmin Hat', -320, -128 ],
|
||||
[ '0x1C3', 'Yellow Pikmin Hat', -960, -1024 ],
|
||||
[ '0x1C0', 'Power Suit Helmet', -960, -640 ],
|
||||
[ '0x1BE', 'Kirby Hat', -832, -448 ],
|
||||
[ '0x1D5', 'Scholar Glasses', -256, -832 ],
|
||||
[ '0x1E3', 'Business Glasses', -320, -192 ],
|
||||
[ '0x1DA', 'Red Fashion Specs', -896, -704 ],
|
||||
[ '0x1DB', 'Black Fashion Specs', -128, -64 ],
|
||||
[ '0x1DC', 'Cop Sunglasses', -256, -256 ],
|
||||
[ '0x1D6', 'White Sunglasses', -960, -960 ],
|
||||
[ '0x1D7', 'Yellow Sunglasses', -1088, 0 ],
|
||||
[ '0x1D8', 'Red Sunglasses', -576, -768 ],
|
||||
[ '0x1DD', 'Sporty Sunglasses', -768, -832 ],
|
||||
[ '0x1E0', 'Black Film Star Shades', -192, -64 ],
|
||||
[ '0x1DF', 'Brown Film Star Shades', -960, -128 ],
|
||||
[ '0x1E1', 'Pink Film Star Shades', -64, -640 ],
|
||||
[ '0x1E2', 'Star Shades', -960, -832 ],
|
||||
[ '0x1D9', 'Heart Shades', -192, -448 ],
|
||||
[ '0x1DE', 'Masquerade Mask', -832, -512 ],
|
||||
[ '0x1E4', 'Victory Specs', -256, -960 ]
|
||||
],
|
||||
bowlsdrink: [
|
||||
[ '0x13E', 'Stainless Steel Bowl', -1088, -192 ],
|
||||
[ '0x13F', 'Green Bowl', -1088, -256 ],
|
||||
[ '0x140', 'Yellow Bowl', -1088, -320 ],
|
||||
[ '0x141', 'Red Bowl', -1088, -384 ],
|
||||
[ '0x142', 'Urushi Bowl', -1088, -448 ],
|
||||
[ '0x143', 'White Polka-Dot Bowl', -1088, -512 ],
|
||||
[ '0x144', 'High-Class Bowl', -1088, -576 ],
|
||||
[ '0x145', 'Wooden Bowl', -1088, -640 ]
|
||||
],
|
||||
bowlsfood: [
|
||||
[ '0x13E', 'White Bowl', -1088, -704 ],
|
||||
[ '0x13F', 'Green Bowl', -1088, -768 ],
|
||||
[ '0x140', 'Yellow Bowl', -1088, -832 ],
|
||||
[ '0x141', 'Red Bowl', -1088, -896 ],
|
||||
[ '0x142', 'Pottery Bowl', -1088, -960 ],
|
||||
[ '0x143', 'Pink Polka-Dot Bowl', -1088, -1024 ],
|
||||
[ '0x144', 'Japanese-Style Bowl', -0, -1088 ],
|
||||
[ '0x145', 'Wooden Bowl', -64, -1088 ]
|
||||
],
|
||||
fooddrink: [
|
||||
[ '0xE5', 'Water', -384, -960 ],
|
||||
[ '0xE6', 'Milk', -64, -576 ],
|
||||
[ '0xDD', 'Dry Food', -960, -256, 1 ],
|
||||
[ '0xDE', 'Wet Food', 0, -320, 1 ],
|
||||
[ '0xDF', 'Diet Food', -896, -256, 1 ],
|
||||
[ '0xE0', 'Premium Tinned Food', -1024, -256, 1 ],
|
||||
[ '0xE1', 'Dry Food', -512, -192, 2 ],
|
||||
[ '0xE2', 'Wet Food', -704, -192, 2 ],
|
||||
[ '0xE3', 'Diet Food', -448, -192, 2 ],
|
||||
[ '0xE4', 'Premium Tinned Food', -640, -192, 2 ],
|
||||
[ '0xE7', 'Biscuits', -1024, 0 ],
|
||||
[ '0xEB', 'Puppy Biscuits', -64, -704, 1 ],
|
||||
[ '0xE9', 'Bone Biscuits', -576, -128, 1 ],
|
||||
[ '0xEA', 'Biscuit Bits', -960, 0, 1 ],
|
||||
[ '0xE8', 'Beef Jerky', -704, 0, 1 ],
|
||||
[ '0xEC', 'Heart Biscuits', -64, -448, 1 ],
|
||||
[ '0xF2', 'Puppy Chews', -128, -704, 1 ],
|
||||
[ '0xEF', 'Fish Biscuits', -960, -320, 2 ],
|
||||
[ '0xEE', 'Fish Jerky', 0, -384, 2 ],
|
||||
[ '0xF1', 'Surprise Biscuits', -576, -896 ],
|
||||
[ '0xED', 'Chicken Jerky', -960, -192, 2 ],
|
||||
[ '0xF0', 'Cat Grass', -576, -192, 2 ],
|
||||
[ '0x159', 'Natural Bristle Brush', -320, -576, 1 ],
|
||||
[ '0x15A', 'Wire Brush', -320, -1024, 1 ],
|
||||
[ '0x15B', 'Rubber Brush', 0, -832, 2 ],
|
||||
[ '0x15C', 'Comb', -64, -256, 2 ],
|
||||
[ '0x157', 'Shampoo', -320, -832 ],
|
||||
[ '0x158', 'Premium Shampoo', -1024, -640 ]
|
||||
],
|
||||
furnitures: [
|
||||
[ '0x1E5', 'Wicker Dog Bed', -64, -1024 ],
|
||||
[ '0x1FE', 'Plush Dog Bed', -704, -640 ],
|
||||
[ '0x201', 'Miniature Bed', -128, -576 ],
|
||||
[ '0x1F0', 'Comfy Couch', -192, -256 ],
|
||||
[ '0x1F6', 'Antique Sofa', -128, 0 ],
|
||||
[ '0x202', 'Fancy Settee', -384, -320 ],
|
||||
[ '0x1FD', 'Leather Sofa', -320, -512 ],
|
||||
[ '0x1EF', 'Armchair', -192, 0 ],
|
||||
[ '0x1FB', 'Designer Chair', -576, -256 ],
|
||||
[ '0x1F5', 'Koopa Shell Chair', -960, -448 ],
|
||||
[ '0x1FC', 'Chest of Drawers', -896, -192 ],
|
||||
[ '0x1F7', 'Antique Chest', -64, 0 ],
|
||||
[ '0x1EE', 'Wooden Cabinet', -384, -1024 ],
|
||||
[ '0x1EC', 'Bookcase', -704, -128 ],
|
||||
[ '0x1ED', 'Dresser', -192, -320 ],
|
||||
[ '0x1E7', 'Display Shelves', -832, -256 ],
|
||||
[ '0x1E8', 'Japanese Step Chest', -576, -448 ],
|
||||
[ '0x203', 'Fancy Wardrobe', -448, -320 ],
|
||||
[ '0x204', 'Starship Cabinet', 0, -896 ],
|
||||
[ '0x1F2', 'Dining Table Set', -704, -256 ],
|
||||
[ '0x1F4', 'Mushroom Table Set', -192, -576 ],
|
||||
[ '0x1EA', 'Refrigerator', -768, -768 ],
|
||||
[ '0x1E9', 'Retro Fan', -832, -768 ],
|
||||
[ '0x205', 'Electronic Fan', -256, -320 ],
|
||||
[ '0x1F1', 'Oil Heater', -448, -576 ],
|
||||
[ '0x1FA', 'Fish Bowl', -1024, -320 ],
|
||||
[ '0x1F8', 'Arowana Aquarium', -256, 0 ],
|
||||
[ '0x1EB', 'Piano', -896, -576 ],
|
||||
[ '0x1F3', 'Retro TV', -896, -768 ],
|
||||
[ '0x1F9', 'Flat-Screen TV', -64, -384 ],
|
||||
[ '0x1FF', 'Slim Cat Tower', -576, -832 ],
|
||||
[ '0x200', 'Simple Cat Tower', -448, -832 ],
|
||||
[ '0x1E6', 'Kitty Tree House', -896, -448 ]
|
||||
],
|
||||
interiors: [
|
||||
[ '0x208', 'Scandinavian' ],
|
||||
[ '0x209', 'Japanese' ],
|
||||
[ '0x20A', 'Asian' ],
|
||||
[ '0x20B', 'Modern' ],
|
||||
[ '0x20C', 'Country' ],
|
||||
[ '0x20D', 'Luxerious House' ],
|
||||
[ '0x20E', 'Fairy Tale' ],
|
||||
[ '0x20F', 'Mario House' ],
|
||||
[ '0x210', 'Futuristic' ]
|
||||
],
|
||||
leashes: [
|
||||
[ '0x12D', 'Red Leash', -64, -768 ],
|
||||
[ '0x12E', 'White Leash', -576, -960 ],
|
||||
[ '0x12F', 'Blue Leash', -128, -128 ],
|
||||
[ '0x130', 'Yellow Leash', -768, -1024 ],
|
||||
[ '0x131', 'Green Leash', -832, -384 ],
|
||||
[ '0x132', 'Pink Leash', -128, -640 ],
|
||||
[ '0x133', 'Brown Leash', -1024, -128 ],
|
||||
[ '0x134', 'Black Leash', -256, -64 ]
|
||||
],
|
||||
toys: [
|
||||
[ '0xA4', 'Tennis Ball', -704, -896 ],
|
||||
[ '0xA6', 'Pink Contrast Tennis Ball', -1024, -576 ],
|
||||
[ '0xA5', 'Blue Contrast Tennis Ball', -960, -64 ],
|
||||
[ '0xAE', 'White Rubber Bone', -832, -960 ],
|
||||
[ '0xAF', 'Blue Rubber Bone', -512, -128 ],
|
||||
[ '0xB0', 'Pink Rubber Bone', -448, -640 ],
|
||||
[ '0xB1', 'Meat Toy', -960, -512 ],
|
||||
[ '0xB2', 'Rubber Dumb-Bell', -64, -832 ],
|
||||
[ '0xA7', 'Bell Ball', -832, 0 ],
|
||||
[ '0xA8', 'Squeaky Ball', -832, -832 ],
|
||||
[ '0xA9', 'Mushroom Toy', -256, -576 ],
|
||||
[ '0xAD', 'Soft Cube', -640, -832 ],
|
||||
[ '0xAC', 'Burger Toy', -256, -192 ],
|
||||
[ '0xAA', 'Football', -256, -384 ],
|
||||
[ '0xAB', 'Beach Ball', -512, 0 ],
|
||||
[ '0xBF', 'Red Flying Disc', -960, -704 ],
|
||||
[ '0xC0', 'Blue Flying Disc', 0, -128 ],
|
||||
[ '0xC1', 'Orange Flying Disc', -512, -576 ],
|
||||
[ '0xC2', 'Green Flying Disc', -704, -384 ],
|
||||
[ '0xC5', 'White Pro Flying Disc', -704, -960 ],
|
||||
[ '0xC6', 'Pink Pro Flying Disc', -320, -640 ],
|
||||
[ '0xC4', 'Yellow Pro Flying Disc', -1024, -1024 ],
|
||||
[ '0xC3', 'Light Blue Pro Flying Disc', -384, -512 ],
|
||||
[ '0xCA', 'Lollipop Disc', -448, -512 ],
|
||||
[ '0xC9', 'Pot Lid', -896, -640 ],
|
||||
[ '0xC8', 'Pizza Disc', -512, -640 ],
|
||||
[ '0xCB', 'Hoop', -448, -448 ],
|
||||
[ '0xC7', 'Rainbow Flying Disc', -448, -704 ],
|
||||
[ '0xFE', 'Blue Boomerang', -832, -64 ],
|
||||
[ '0xFF', 'Yellow Boomerang', -576, -1024 ],
|
||||
[ '0x100', 'Red Lure', -192, -768 ],
|
||||
[ '0x101', 'Blue Lure', -256, -128 ],
|
||||
[ '0x102', 'Yellow Lure', -896, -1024 ],
|
||||
[ '0x103', 'Pink Lure', -192, -640 ],
|
||||
[ '0x106', 'White Pro Lure', -768, -960 ],
|
||||
[ '0x105', 'Green Pro Lure', -1024, -384 ],
|
||||
[ '0x107', 'Orange Pro Lure', -576, -576 ],
|
||||
[ '0x104', 'Blue Pro Lure', -448, -128 ],
|
||||
[ '0x109', 'Meat Lure', -896, -512 ],
|
||||
[ '0x10B', 'Bunny Doll Lure', -192, -192 ],
|
||||
[ '0x10A', 'Banana Lure', -448, 0 ],
|
||||
[ '0x108', 'Ballet Shoe Lure', -320, 0 ],
|
||||
[ '0x10C', 'Rainbow Lure', -512, -704 ],
|
||||
[ '0x122', 'Balloon', -384, 0 ],
|
||||
[ '0x123', 'Bubble Blower', -128, -192 ],
|
||||
[ '0x11B', 'Pink Feather Cat Wand', 0, -640 ],
|
||||
[ '0x11C', 'Blue Feather Cat Wand', -1024, -64 ],
|
||||
[ '0x11D', 'Green Feather Cat Wand', -640, -384 ],
|
||||
[ '0x11F', 'Dancing Feather Cat Wand', -448, -256 ],
|
||||
[ '0x11E', 'Hopping Mouse Cat Wand', -512, -448 ],
|
||||
[ '0x121', 'Flying Butterfly Cat Wand', -192, -384 ],
|
||||
[ '0x120', 'Jumping Fish Cat Wand', -640, -448 ],
|
||||
[ '0x124', 'Wind-Up Miss Chickie', -128, -1024 ],
|
||||
[ '0x125', 'Wind-Up Mr Froggins', -192, -1024 ],
|
||||
[ '0x126', 'Wind-Up Sir Nibbles', -256, -1024 ],
|
||||
[ '0xBA', 'Mario Kart', -704, -512 ],
|
||||
[ '0xBC', 'Peach Kart', -768, -576 ],
|
||||
[ '0xBB', 'Yoshi Kart', -1088, -128 ],
|
||||
[ '0xBD', 'RC Helicopter', -320, -704 ],
|
||||
[ '0xBE', 'Combat Copter', -128, -256 ],
|
||||
[ '0xB3', 'Leather Shoe', -256, -512 ],
|
||||
[ '0xB4', 'High Heel', -384, -448 ],
|
||||
[ '0xB9', 'Stuffed Dog', -256, -896 ],
|
||||
[ '0xB5', 'Tippy Toy', -960, -896 ],
|
||||
[ '0xB7', 'Promise Ring', 0, -704 ],
|
||||
[ '0xB6', 'Gold Bar', -512, -384 ],
|
||||
[ '0xB8', 'Piggy Bank', -960, -576 ],
|
||||
[ '0x15D', 'AR Camera', 0, 0 ],
|
||||
[ '0x15E', 'RoboPup Voucher', -960, -768 ],
|
||||
[ '0x14A', 'Keyboard', -704, -448 ],
|
||||
[ '0x14B', 'Dog & Cat', -64, -320, 3 ],
|
||||
[ '0x14C', 'Frantic Frolics', -320, -384, 3, 3 ],
|
||||
[ '0x14D', 'Up in the Clouds', -64, -960, 3 ],
|
||||
[ '0x14E', 'Surprise Beat', -512, -896, 3 ],
|
||||
[ '0x14F', 'Telephone', -640, -896, 3 ],
|
||||
[ '0x151', 'Club Dog', 0, -256, 3 ],
|
||||
[ '0x150', 'The Flea Waltz', -832, -896, 3 ],
|
||||
[ '0x152', 'Danse des mirlitons', -512, -256, 3 ],
|
||||
[ '0x153', 'Maple Leaf Rag', -640, -512, 3 ],
|
||||
[ '0x154', 'Csikós Post', -384, -256, 3 ],
|
||||
[ '0x155', "Skaters' Waltz", -512, -832, 3 ],
|
||||
[ '0x156', 'Thank You', -768, -896, 3 ],
|
||||
[ '0x127', 'Wooden Stick', -448, -1024, 4 ],
|
||||
[ '0x128', 'Metal Bolt', -1024, -512, 4 ],
|
||||
[ '0x129', 'Rubber Tyre Chunk', -128, -832, 4 ],
|
||||
[ '0x12A', 'Leather Key Ring', -128, -512, 4 ],
|
||||
[ '0x12B', 'Plastic Bottle', -576, -640, 4 ],
|
||||
[ '0x12C', 'Stardust', -1024, -832, 4 ]
|
||||
]
|
||||
};
|
||||
// items[ 0 ] = Item type
|
||||
// * 0 = food & drink
|
||||
// * 1 = toys
|
||||
// * 2 = accessories
|
||||
// * 3 = furnitures
|
||||
// * 4 = leashes
|
||||
// * 5 = bowls for drinks
|
||||
// * 6 = bowls for food
|
||||
|
||||
// items[ 1 ] = Item name
|
||||
|
||||
// items[ 2 ] = Hex location in save file
|
||||
|
||||
// items[ 3 ] = Prefixed icon
|
||||
// * 1 = dog
|
||||
// * 2 = cat
|
||||
// * 3 = music
|
||||
// * 4 = recycle
|
||||
SavegameEditor.Constants.items = [
|
||||
[ 0, 'Water', '0xE5' ],
|
||||
[ 0, 'Milk', '0xE6' ],
|
||||
[ 0, 'Dry Food', '0xDD', 1 ],
|
||||
[ 0, 'Wet Food', '0xDE', 1 ],
|
||||
[ 0, 'Diet Food', '0xDF', 1 ],
|
||||
[ 0, 'Premium Tinned Food', '0xE0', 1 ],
|
||||
[ 0, 'Dry Food', '0xE1', 2 ],
|
||||
[ 0, 'Wet Food', '0xE2', 2 ],
|
||||
[ 0, 'Diet Food', '0xE3', 2 ],
|
||||
[ 0, 'Premium Tinned Food', '0xE4', 2 ],
|
||||
[ 0, 'Biscuits', '0xE7' ],
|
||||
[ 0, 'Puppy Biscuits', '0xEB', 1 ],
|
||||
[ 0, 'Bone Biscuits', '0xE9', 1 ],
|
||||
[ 0, 'Biscuit Bits', '0xEA', 1 ],
|
||||
[ 0, 'Beef Jerky', '0xE8', 1 ],
|
||||
[ 0, 'Heart Biscuits', '0xEC', 1 ],
|
||||
[ 0, 'Puppy Chews', '0xF2', 1 ],
|
||||
[ 0, 'Fish Biscuits', '0xEF', 2 ],
|
||||
[ 0, 'Fish Jerky', '0xEE', 2 ],
|
||||
[ 0, 'Surprise Biscuits', '0xF1' ],
|
||||
[ 0, 'Chicken Jerky', '0xED', 2 ],
|
||||
[ 0, 'Cat Grass', '0xF0', 2 ],
|
||||
[ 0, 'Natural Bristle Brush', '0x159', 1 ],
|
||||
[ 0, 'Wire Brush', '0x15A', 1 ],
|
||||
[ 0, 'Rubber Brush', '0x15B', 2 ],
|
||||
[ 0, 'Comb', '0x15C', 2 ],
|
||||
[ 0, 'Shampoo', '0x157' ],
|
||||
[ 0, 'Premium Shampoo', '0x158' ],
|
||||
[ 1, 'Tennis Ball', '0xA4' ],
|
||||
[ 1, 'Pink Contrast Tennis Ball', '0xA6' ],
|
||||
[ 1, 'Blue Contrast Tennis Ball', '0xA5' ],
|
||||
[ 1, 'White Rubber Bone', '0xAE' ],
|
||||
[ 1, 'Blue Rubber Bone', '0xAF' ],
|
||||
[ 1, 'Pink Rubber Bone', '0xB0' ],
|
||||
[ 1, 'Meat Toy', '0xB1' ],
|
||||
[ 1, 'Rubber Dumb-Bell', '0xB2' ],
|
||||
[ 1, 'Bell Ball', '0xA7' ],
|
||||
[ 1, 'Squeaky Ball', '0xA8' ],
|
||||
[ 1, 'Mushroom Toy', '0xA9' ],
|
||||
[ 1, 'Soft Cube', '0xAD' ],
|
||||
[ 1, 'Burger Toy', '0xAC' ],
|
||||
[ 1, 'Football', '0xAA' ],
|
||||
[ 1, 'Beach Ball', '0xAB' ],
|
||||
[ 1, 'Red Flying Disc', '0xBF' ],
|
||||
[ 1, 'Blue Flying Disc', '0xC0' ],
|
||||
[ 1, 'Orange Flying Disc', '0xC1' ],
|
||||
[ 1, 'Green Flying Disc', '0xC2' ],
|
||||
[ 1, 'White Pro Flying Disc', '0xC5' ],
|
||||
[ 1, 'Pink Pro Flying Disc', '0xC6' ],
|
||||
[ 1, 'Yellow Pro Flying Disc', '0xC4' ],
|
||||
[ 1, 'Light Blue Pro Flying Disc', '0xC3' ],
|
||||
[ 1, 'Lollipop Disc', '0xCA' ],
|
||||
[ 1, 'Pot Lid', '0xC9' ],
|
||||
[ 1, 'Pizza Disc', '0xC8' ],
|
||||
[ 1, 'Hoop', '0xCB' ],
|
||||
[ 1, 'Rainbow Flying Disc', '0xC7' ],
|
||||
[ 1, 'Blue Boomerang', '0xFE' ],
|
||||
[ 1, 'Yellow Boomerang', '0xFF' ],
|
||||
[ 1, 'Red Lure', '0x100' ],
|
||||
[ 1, 'Blue Lure', '0x101' ],
|
||||
[ 1, 'Yellow Lure', '0x102' ],
|
||||
[ 1, 'Pink Lure', '0x103' ],
|
||||
[ 1, 'White Pro Lure', '0x106' ],
|
||||
[ 1, 'Green Pro Lure', '0x105' ],
|
||||
[ 1, 'Orange Pro Lure', '0x107' ],
|
||||
[ 1, 'Blue Pro Lure', '0x104' ],
|
||||
[ 1, 'Meat Lure', '0x109' ],
|
||||
[ 1, 'Bunny Doll Lure', '0x10B' ],
|
||||
[ 1, 'Banana Lure', '0x10A' ],
|
||||
[ 1, 'Ballet Shoe Lure', '0x108' ],
|
||||
[ 1, 'Rainbow Lure', '0x10C' ],
|
||||
[ 1, 'Balloon', '0x122' ],
|
||||
[ 1, 'Bubble Blower', '0x123' ],
|
||||
[ 1, 'Pink Feather Cat Wand', '0x11B' ],
|
||||
[ 1, 'Blue Feather Cat Wand', '0x11C' ],
|
||||
[ 1, 'Green Feather Cat Wand', '0x11D' ],
|
||||
[ 1, 'Dancing Feather Cat Wand', '0x11F' ],
|
||||
[ 1, 'Hopping Mouse Cat Wand', '0x11E' ],
|
||||
[ 1, 'Flying Butterfly Cat Wand', '0x121' ],
|
||||
[ 1, 'Jumping Fish Cat Wand', '0x120' ],
|
||||
[ 1, 'Wind-Up Miss Chickie', '0x124' ],
|
||||
[ 1, 'Wind-Up Mr Froggins', '0x125' ],
|
||||
[ 1, 'Wind-Up Sir Nibbles', '0x126' ],
|
||||
[ 1, 'Mario Kart', '0xBA' ],
|
||||
[ 1, 'Peach Kart', '0xBC' ],
|
||||
[ 1, 'Yoshi Kart', '0xBB' ],
|
||||
[ 1, 'RC Helicopter', '0xBD' ],
|
||||
[ 1, 'Combat Copter', '0xBE' ],
|
||||
[ 1, 'Leather Shoe', '0xB3' ],
|
||||
[ 1, 'High Heel', '0xB4' ],
|
||||
[ 1, 'Stuffed Dog', '0xB9' ],
|
||||
[ 1, 'Tippy Toy', '0xB5' ],
|
||||
[ 1, 'Promise Ring', '0xB7' ],
|
||||
[ 1, 'Gold Bar', '0xB6' ],
|
||||
[ 1, 'Piggy Bank', '0xB8' ],
|
||||
[ 1, 'AR Camera', '0x15D' ],
|
||||
[ 1, 'RoboPup Voucher', '0x15E' ],
|
||||
[ 1, 'Keyboard', '0x14A' ],
|
||||
[ 1, 'Dog & Cat', '0x14B', 3 ],
|
||||
[ 1, 'Frantic Frolics', '0x14C', 3 ],
|
||||
[ 1, 'Up in the Clouds', '0x14D', 3 ],
|
||||
[ 1, 'Surprise Beat', '0x14E', 3 ],
|
||||
[ 1, 'Telephone', '0x14F', 3 ],
|
||||
[ 1, 'Club Dog', '0x151', 3 ],
|
||||
[ 1, 'The Flea Waltz', '0x150', 3 ],
|
||||
[ 1, 'Danse des mirlitons', '0x152', 3 ],
|
||||
[ 1, 'Maple Leaf Rag', '0x153', 3 ],
|
||||
[ 1, 'Csikós Post', '0x154', 3 ],
|
||||
[ 1, "Skaters' Waltz", '0x155', 3 ],
|
||||
[ 1, 'Thank You', '0x156', 3 ],
|
||||
[ 1, 'Wooden Stick', '0x127', 4 ],
|
||||
[ 1, 'Metal Bolt', '0x128', 4 ],
|
||||
[ 1, 'Rubber Tyre Chunk', '0x129', 4 ],
|
||||
[ 1, 'Leather Key Ring', '0x12A', 4 ],
|
||||
[ 1, 'Plastic Bottle', '0x12B', 4 ],
|
||||
[ 1, 'Stardust', '0x12C', 4 ],
|
||||
[ 2, 'Red Leather Collar', '0x15F' ],
|
||||
[ 2, 'Blue Leather Collar', '0x160' ],
|
||||
[ 2, 'Yellow Leather Collar', '0x161' ],
|
||||
[ 2, 'Green Leather Collar', '0x162' ],
|
||||
[ 2, 'Brown Leather Collar', '0x163' ],
|
||||
[ 2, 'White Leather Collar', '0x164' ],
|
||||
[ 2, 'Black Leather Collar', '0x165' ],
|
||||
[ 2, 'Purple Leather Collar', '0x166' ],
|
||||
[ 2, 'Black Polka-Dot Collar', '0x17A' ],
|
||||
[ 2, 'Red Polka-Dot Collar', '0x17C' ],
|
||||
[ 2, 'Dot Collar', '0x17B' ],
|
||||
[ 2, 'Camo Collar', '0x170' ],
|
||||
[ 2, 'Rainbow Collar', '0x18E' ],
|
||||
[ 2, 'Striped Collar', '0x190' ],
|
||||
[ 2, 'Woven Collar', '0x186' ],
|
||||
[ 2, 'Flower Collar', '0x17D' ],
|
||||
[ 2, 'Beaded Collar', '0x16F' ],
|
||||
[ 2, 'Hibiscus Flower Lei', '0x16C' ],
|
||||
[ 2, 'Star Collar', '0x183' ],
|
||||
[ 2, 'Heart Collar', '0x182' ],
|
||||
[ 2, 'Lace Necklace', '0x16B' ],
|
||||
[ 2, 'Leather Necklace', '0x177' ],
|
||||
[ 2, 'Red Bell Collar', '0x172' ],
|
||||
[ 2, 'Blue Bell Collar', '0x173' ],
|
||||
[ 2, 'Green Bell Collar', '0x174' ],
|
||||
[ 2, 'Brown Bell Collar', '0x175' ],
|
||||
[ 2, 'Green Japanese Print Collar', '0x17E' ],
|
||||
[ 2, 'Red Japanese Print Collar', '0x180' ],
|
||||
[ 2, 'Blue Japanese Print Collar', '0x17F' ],
|
||||
[ 2, 'Red Spiked Collar', '0x168' ],
|
||||
[ 2, 'Black Spiked Collar', '0x167' ],
|
||||
[ 2, 'Faux-Python Collar', '0x189' ],
|
||||
[ 2, 'Faux-Leopard Collar', '0x188' ],
|
||||
[ 2, 'Faux-Zebra Collar', '0x18A' ],
|
||||
[ 2, 'Faux-Crocodile Collar', '0x187' ],
|
||||
[ 2, 'Southwest Collar', '0x184' ],
|
||||
[ 2, 'Glitzy Collar', '0x178' ],
|
||||
[ 2, 'Metal-Link Necklace', '0x176' ],
|
||||
[ 2, 'Silver Necklace', '0x18F' ],
|
||||
[ 2, 'Platinum Collar', '0x18D' ],
|
||||
[ 2, 'Classy Collar', '0x171' ],
|
||||
[ 2, 'Pearl Necklace', '0x18C' ],
|
||||
[ 2, 'Black Pearl Necklace', '0x18B' ],
|
||||
[ 2, 'Diamond Collar', '0x179' ],
|
||||
[ 2, 'Royal Heirloom Necklace', '0x181' ],
|
||||
[ 2, 'Victory Collar', '0x193' ],
|
||||
[ 2, "Kid's Bandanna", '0x16D' ],
|
||||
[ 2, 'Fringed Leather Collar', '0x16A' ],
|
||||
[ 2, 'Bow Tie', '0x16E' ],
|
||||
[ 2, "Chef's Scarf", '0x169' ],
|
||||
[ 2, "Lady's Scarf", '0x191' ],
|
||||
[ 2, "Man's Scarf", '0x192' ],
|
||||
[ 2, 'Red Woolly Scarf', '0x185' ],
|
||||
[ 2, 'Red Bows', '0x1C9' ],
|
||||
[ 2, 'Yellow Bows', '0x1CA' ],
|
||||
[ 2, 'Red Chequered Bows', '0x1CB' ],
|
||||
[ 2, 'Blue Chequered Bows', '0x1CC' ],
|
||||
[ 2, 'Pink Polka-Dot Bows', '0x1CD' ],
|
||||
[ 2, 'Blue Polka-Dot Bows', '0x1CE' ],
|
||||
[ 2, 'Purple Pearl Bows', '0x1CF' ],
|
||||
[ 2, 'Green Pearl Bows', '0x1D0' ],
|
||||
[ 2, 'Black Striped Bows', '0x1D1' ],
|
||||
[ 2, 'Red Striped Bows', '0x1D2' ],
|
||||
[ 2, 'Tricolour Bows', '0x1D3' ],
|
||||
[ 2, 'Fancy Bow', '0x1D4' ],
|
||||
[ 2, 'Red Rose', '0x1C8' ],
|
||||
[ 2, 'Pink Rose', '0x1C7' ],
|
||||
[ 2, 'Red Hibiscus Flower', '0x1C5' ],
|
||||
[ 2, 'White Hibiscus Flower', '0x1C4' ],
|
||||
[ 2, 'Sunflower', '0x1C6' ],
|
||||
[ 2, 'Red Cap', '0x19F' ],
|
||||
[ 2, 'Yellow Cap', '0x19E' ],
|
||||
[ 2, 'Black Cap', '0x1A0' ],
|
||||
[ 2, 'Newsboy Cap', '0x1A9' ],
|
||||
[ 2, 'Leather Cap', '0x1B1' ],
|
||||
[ 2, 'Red Woolly Hat', '0x196' ],
|
||||
[ 2, 'Yellow Woolly Hat', '0x194' ],
|
||||
[ 2, 'Black Woolly Hat', '0x195' ],
|
||||
[ 2, 'White Woolly Hat', '0x197' ],
|
||||
[ 2, 'Beanie', '0x1B0' ],
|
||||
[ 2, 'Beret', '0x1A3' ],
|
||||
[ 2, 'Sun Visor', '0x1B9' ],
|
||||
[ 2, 'Straw Hat', '0x1B2' ],
|
||||
[ 2, 'White Bucket Hat', '0x1A5' ],
|
||||
[ 2, 'Black Bucket Hat', '0x1A6' ],
|
||||
[ 2, 'Beige Bucket Hat', '0x1A7' ],
|
||||
[ 2, 'Brown Safari Hat', '0x19B' ],
|
||||
[ 2, 'White Safari Hat', '0x19C' ],
|
||||
[ 2, 'Black Top Hat', '0x1B7' ],
|
||||
[ 2, 'White Top Hat', '0x1B8' ],
|
||||
[ 2, 'Fedora', '0x1A4' ],
|
||||
[ 2, 'Bonnet', '0x1A8' ],
|
||||
[ 2, 'Feathered Green Hat', '0x1AC' ],
|
||||
[ 2, 'Feathered Purple Hat', '0x1AD' ],
|
||||
[ 2, 'Pointy Hat', '0x1B5' ],
|
||||
[ 2, "Santa's Hat", '0x1B6' ],
|
||||
[ 2, "Chef's Hat", '0x1AA' ],
|
||||
[ 2, 'Viking Hat', '0x1BB' ],
|
||||
[ 2, 'Party Hat', '0x1B4' ],
|
||||
[ 2, 'Headpiece', '0x19D' ],
|
||||
[ 2, 'Stunt Helmet', '0x1AF' ],
|
||||
[ 2, 'Origami Hat', '0x1A2' ],
|
||||
[ 2, 'Pompadour Wig', '0x19A' ],
|
||||
[ 2, 'Bowl Cut Wig', '0x1B3' ],
|
||||
[ 2, 'Rainbow Wig', '0x1A1' ],
|
||||
[ 2, 'Strawberry Hood', '0x1AE' ],
|
||||
[ 2, 'Tiara', '0x1BA' ],
|
||||
[ 2, 'Crown', '0x1AB' ],
|
||||
[ 2, 'Victory Crown', '0x1BC' ],
|
||||
[ 2, "Mario's Hat", '0x198' ],
|
||||
[ 2, "Luigi's Hat", '0x199' ],
|
||||
[ 2, 'Toad Hat', '0x1BD' ],
|
||||
[ 2, "Hero's Hat", '0x1BF' ],
|
||||
[ 2, 'Red Pikmin Hat', '0x1C1' ],
|
||||
[ 2, 'Blue Pikmin Hat', '0x1C2' ],
|
||||
[ 2, 'Yellow Pikmin Hat', '0x1C3' ],
|
||||
[ 2, 'Power Suit Helmet', '0x1C0' ],
|
||||
[ 2, 'Kirby Hat', '0x1BE' ],
|
||||
[ 2, 'Scholar Glasses', '0x1D5' ],
|
||||
[ 2, 'Business Glasses', '0x1E3' ],
|
||||
[ 2, 'Red Fashion Specs', '0x1DA' ],
|
||||
[ 2, 'Black Fashion Specs', '0x1DB' ],
|
||||
[ 2, 'Cop Sunglasses', '0x1DC' ],
|
||||
[ 2, 'White Sunglasses', '0x1D6' ],
|
||||
[ 2, 'Yellow Sunglasses', '0x1D7' ],
|
||||
[ 2, 'Red Sunglasses', '0x1D8' ],
|
||||
[ 2, 'Sporty Sunglasses', '0x1DD' ],
|
||||
[ 2, 'Black Film Star Shades', '0x1E0' ],
|
||||
[ 2, 'Brown Film Star Shades', '0x1DF' ],
|
||||
[ 2, 'Pink Film Star Shades', '0x1E1' ],
|
||||
[ 2, 'Star Shades', '0x1E2' ],
|
||||
[ 2, 'Heart Shades', '0x1D9' ],
|
||||
[ 2, 'Masquerade Mask', '0x1DE' ],
|
||||
[ 2, 'Victory Specs', '0x1E4' ],
|
||||
[ 3, 'Wicker Dog Bed', '0x1E5' ],
|
||||
[ 3, 'Plush Dog Bed', '0x1FE' ],
|
||||
[ 3, 'Miniature Bed', '0x201' ],
|
||||
[ 3, 'Comfy Couch', '0x1F0' ],
|
||||
[ 3, 'Antique Sofa', '0x1F6' ],
|
||||
[ 3, 'Fancy Settee', '0x202' ],
|
||||
[ 3, 'Leather Sofa', '0x1FD' ],
|
||||
[ 3, 'Armchair', '0x1EF' ],
|
||||
[ 3, 'Designer Chair', '0x1FB' ],
|
||||
[ 3, 'Koopa Shell Chair', '0x1F5' ],
|
||||
[ 3, 'Chest of Drawers', '0x1FC' ],
|
||||
[ 3, 'Antique Chest', '0x1F7' ],
|
||||
[ 3, 'Wooden Cabinet', '0x1EE' ],
|
||||
[ 3, 'Bookcase', '0x1EC' ],
|
||||
[ 3, 'Dresser', '0x1ED' ],
|
||||
[ 3, 'Display Shelves', '0x1E7' ],
|
||||
[ 3, 'Japanese Step Chest', '0x1E8' ],
|
||||
[ 3, 'Fancy Wardrobe', '0x203' ],
|
||||
[ 3, 'Display Case', '0x206' ],
|
||||
[ 3, 'Starship Cabinet', '0x204' ],
|
||||
[ 3, 'Dining Table Set', '0x1F2' ],
|
||||
[ 3, 'Mushroom Table Set', '0x1F4' ],
|
||||
[ 3, 'Refrigerator', '0x1EA' ],
|
||||
[ 3, 'Retro Fan', '0x1E9' ],
|
||||
[ 3, 'Electronic Fan', '0x205' ],
|
||||
[ 3, 'Oil Heater', '0x1F1' ],
|
||||
[ 3, 'Fish Bowl', '0x1FA' ],
|
||||
[ 3, 'Arowana Aquarium', '0x1F8' ],
|
||||
[ 3, 'Piano', '0x1EB' ],
|
||||
[ 3, 'Retro TV', '0x1F3' ],
|
||||
[ 3, 'Flat-Screen TV', '0x1F9' ],
|
||||
[ 3, 'Simple Cat Tower', '0x200' ],
|
||||
[ 3, 'Slim Cat Tower', '0x1FF' ],
|
||||
[ 3, 'Kitty Tree House', '0x1E6' ],
|
||||
[ 4, 'Red Leash', '0x12D' ],
|
||||
[ 4, 'White Leash', '0x12E' ],
|
||||
[ 4, 'Blue Leash', '0x12F' ],
|
||||
[ 4, 'Yellow Leash', '0x130' ],
|
||||
[ 4, 'Green Leash', '0x131' ],
|
||||
[ 4, 'Pink Leash', '0x132' ],
|
||||
[ 4, 'Brown Leash', '0x133' ],
|
||||
[ 4, 'Black Leash', '0x134' ],
|
||||
[ 5, 'Stainless Steel Bowl', '0x136' ],
|
||||
[ 5, 'Green Bowl', '0x137' ],
|
||||
[ 5, 'Yellow Bowl', '0x138' ],
|
||||
[ 5, 'Red Bowl', '0x139' ],
|
||||
[ 5, 'Urushi Bowl', '0x13A' ],
|
||||
[ 5, 'White Polka-Dot Bowl', '0x13B' ],
|
||||
[ 5, 'High-Class Bowl', '0x13C' ],
|
||||
[ 5, 'Wooden Bowl', '0x13D' ],
|
||||
[ 6, 'White Bowl', '0x13E' ],
|
||||
[ 6, 'Green Bowl', '0x13F' ],
|
||||
[ 6, 'Yellow Bowl', '0x140' ],
|
||||
[ 6, 'Red Bowl', '0x141' ],
|
||||
[ 6, 'Pottery Bowl', '0x142' ],
|
||||
[ 6, 'Pink Polka-Dot Bowl', '0x143' ],
|
||||
[ 6, 'Japanese-Style Bowl', '0x144' ],
|
||||
[ 6, 'Wooden Bowl', '0x145' ]
|
||||
];
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 825 KiB |
BIN
nintendogs+cats/items.webp
Normal file
BIN
nintendogs+cats/items.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 606 KiB |
@@ -53,20 +53,6 @@
|
||||
display: block;
|
||||
}
|
||||
|
||||
.item-icon {
|
||||
background-image: url( ./items.png );
|
||||
background-repeat: no-repeat;
|
||||
background-size: 576px;
|
||||
display: inline-block;
|
||||
height: 32px;
|
||||
image-rendering: pixelated;
|
||||
margin-right: 6px;
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
vertical-align: middle;
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
.item-name {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
@@ -74,7 +60,7 @@
|
||||
}
|
||||
|
||||
.item-name[ data-icon ]::before {
|
||||
background-image: url( ./icons.png );
|
||||
background-image: url( ./icons.webp );
|
||||
background-repeat: no-repeat;
|
||||
background-size: 68px;
|
||||
content: '';
|
||||
@@ -104,6 +90,19 @@
|
||||
background-position-x: -51px;
|
||||
}
|
||||
|
||||
.item-icon {
|
||||
background-image: url( ./items.webp );
|
||||
background-size: 576px;
|
||||
background-repeat: no-repeat;
|
||||
display: inline-block;
|
||||
height: 32px;
|
||||
margin-right: 6px;
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
vertical-align: middle;
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
/* Fix */
|
||||
.columns.c1,
|
||||
.columns.one {
|
||||
@@ -117,7 +116,7 @@
|
||||
|
||||
.columns.c3,
|
||||
.columns.three {
|
||||
width: calc( 100% / 12 * 3 );
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.columns.c4,
|
||||
@@ -132,7 +131,7 @@
|
||||
|
||||
.columns.c6,
|
||||
.columns.six {
|
||||
width: calc( 100% / 12 * 6 );
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.columns.c7,
|
||||
@@ -147,7 +146,7 @@
|
||||
|
||||
.columns.c9,
|
||||
.columns.nine {
|
||||
width: calc( 100% / 12 * 9 );
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.columns.c10,
|
||||
|
@@ -98,7 +98,18 @@ SavegameEditor = {
|
||||
PET_PERSONALITIES_OFFSET_DOG2: 0x1FA,
|
||||
PET_PERSONALITIES_OFFSET_CAT1: 0x1EE,
|
||||
PET_PERSONALITIES_OFFSET_CAT2: 0x1F2,
|
||||
WALKING_COUNTER_OFFSET: 0x215
|
||||
WALKING_COUNTER_OFFSET: 0x215,
|
||||
interiors: [
|
||||
[ '0x208', 'Scandinavian' ],
|
||||
[ '0x209', 'Japanese' ],
|
||||
[ '0x20A', 'Asian' ],
|
||||
[ '0x20B', 'Modern' ],
|
||||
[ '0x20C', 'Country' ],
|
||||
[ '0x20D', 'Luxerious House' ],
|
||||
[ '0x20E', 'Fairy Tale' ],
|
||||
[ '0x20F', 'Mario House' ],
|
||||
[ '0x210', 'Futuristic' ]
|
||||
]
|
||||
},
|
||||
|
||||
_write_money: function () {
|
||||
@@ -141,7 +152,7 @@ SavegameEditor = {
|
||||
getValue( e.target.id )
|
||||
);
|
||||
|
||||
document.getElementsByClassName( 'pet' + index + '_name' )[ 0 ].innerText = getValue( e.target.id );
|
||||
document.getElementsByClassName( `pet${ index }_name` )[ 0 ].innerText = getValue( e.target.id );
|
||||
},
|
||||
_write_u_number: function ( e, n, o, g ) {
|
||||
const index = Number( ( e.target.id ).match( reg )[ 0 ] );
|
||||
@@ -150,7 +161,7 @@ SavegameEditor = {
|
||||
pet_offset = 0;
|
||||
}
|
||||
const offset = pet_offset + SavegameEditor.Constants[ o ];
|
||||
tempFile[ 'writeU' + n ](
|
||||
tempFile[ `writeU${ n }` ](
|
||||
offset,
|
||||
Number( getValue( e.target.id ) )
|
||||
);
|
||||
@@ -159,7 +170,7 @@ SavegameEditor = {
|
||||
SavegameEditor._write_u_number( e, Number( e.target.parentElement.dataset.size ), e.target.parentElement.dataset.var, e.target.parentElement.dataset.global );
|
||||
},
|
||||
_getPetData( petOffset, val, size ) {
|
||||
return tempFile[ 'readU' + ( size || 8 ) ]( SavegameEditor.Constants.PET_OFFSET[ petOffset ] + SavegameEditor.Constants[ val ] );
|
||||
return tempFile[ `readU${ size || 8 }` ]( SavegameEditor.Constants.PET_OFFSET[ petOffset ] + SavegameEditor.Constants[ val ] );
|
||||
},
|
||||
_mark_as_changed( e ) {
|
||||
e.target.dataset.data_changed = true;
|
||||
@@ -174,47 +185,71 @@ SavegameEditor = {
|
||||
getValue( 'interiors' )
|
||||
);
|
||||
},
|
||||
appendItem: function ( rowtype ) {
|
||||
const items = SavegameEditor.Constants.items,
|
||||
rowname = rowtype[ 0 ],
|
||||
rt = get( 'row-' + rowname ),
|
||||
min = [ 'bowlsfood', 'bowlsdrink' ].includes( rowname ) ? 1 : 0,
|
||||
options = [];
|
||||
if ( rowname === 'interiors' ) {
|
||||
items[ rowname ].forEach( ( item ) => {
|
||||
options.push( item[ 1 ] );
|
||||
} );
|
||||
rt.append(
|
||||
col( 8, span( 'Active interior' ) ),
|
||||
col( 4, select( 'interiors', options, SavegameEditor.updateInterior ) )
|
||||
);
|
||||
}
|
||||
items[ rowname ].forEach( ( item, index ) => {
|
||||
if ( item[ 2 ] === undefined ) {
|
||||
rt.append( col( 3, span( item[ 1 ] ) ) );
|
||||
} else {
|
||||
const itemIcon = document.createElement( 'span' ),
|
||||
itemCol = col( 3, itemIcon ),
|
||||
itemName = itemCol.appendChild( document.createElement( 'span' ) );
|
||||
itemIcon.className = 'item-icon';
|
||||
itemIcon.style.backgroundPosition = `${ item[ 2 ] / 2 }px ${ item[ 3 ] / 2 }px`;
|
||||
itemName.className = 'item-name';
|
||||
itemName.textContent = item[ 1 ];
|
||||
if ( item[ 4 ] ) {
|
||||
itemName.dataset.icon = item[ 4 ];
|
||||
}
|
||||
rt.append( itemCol );
|
||||
setPos: function ( node, pos ) {
|
||||
const size = 64, // Sprite height
|
||||
scale = 0.5, // height scaled down to 32px
|
||||
tiles = 18,
|
||||
left = pos % tiles * size * scale,
|
||||
top = Math.floor( pos / tiles ) * size * scale;
|
||||
node.style.backgroundPosition = `-${ left }px -${ top }px`;
|
||||
},
|
||||
appendItems: function () {
|
||||
const itemTypes = [
|
||||
[ 'fooddrink', 99 ],
|
||||
[ 'toys', 99 ],
|
||||
[ 'accessories', 99 ],
|
||||
[ 'furnitures', 99 ],
|
||||
[ 'leashes', 99 ],
|
||||
[ 'bowlsdrink', 1 ],
|
||||
[ 'bowlsfood', 1 ]
|
||||
];
|
||||
SavegameEditor.Constants.items.forEach( ( item, index ) => {
|
||||
const type = itemTypes[ item[ 0 ] ],
|
||||
rowname = type[ 0 ],
|
||||
min = [ 'bowlsfood', 'bowlsdrink' ].includes( rowname ) ? 1 : 0,
|
||||
row = get( `row-${ rowname }` ),
|
||||
itemIcon = document.createElement( 'span' ),
|
||||
itemCol = col( 3, itemIcon ),
|
||||
itemName = itemCol.appendChild( document.createElement( 'span' ) ),
|
||||
itemInput = inputNumber( `supplies_${ index }`, index === 0 ? min : 0, type[ 1 ], tempFile.readU8( Number( item[ 2 ] ) ) );
|
||||
itemIcon.className = 'item-icon';
|
||||
itemName.className = 'item-name';
|
||||
itemName.textContent = item[ 1 ];
|
||||
SavegameEditor.setPos( itemIcon, index );
|
||||
if ( item[ 3 ] ) {
|
||||
itemName.dataset.icon = item[ 3 ];
|
||||
}
|
||||
rt.append(
|
||||
col( 1, inputNumber( 'supplies_' + rowname + '_' + index + '_amount', index === 0 ? min : 0, rowtype[ 1 ], tempFile.readU8( Number( item[ 0 ] ) ) ) )
|
||||
row.append( itemCol );
|
||||
row.append(
|
||||
col( 1, itemInput )
|
||||
);
|
||||
get( 'number-supplies_' + rowname + '_' + index + '_amount' ).dataset.offset = item[ 0 ];
|
||||
get( 'number-supplies_' + rowname + '_' + index + '_amount' ).addEventListener( 'change', SavegameEditor._write_supply_amount );
|
||||
itemInput.dataset.offset = item[ 0 ];
|
||||
itemInput.addEventListener( 'change', SavegameEditor._write_supply_amount );
|
||||
} );
|
||||
const lastRow = SavegameEditor.Constants.items[ rowname ].length % 3;
|
||||
if ( lastRow !== 0 ) {
|
||||
rt.append( col( ( 3 - lastRow ) * 4, span( '' ) ) );
|
||||
}
|
||||
itemTypes.forEach( ( type ) => {
|
||||
const rowname = type[ 0 ],
|
||||
row = get( `row-${ rowname }` ),
|
||||
lastRow = row.childElementCount % 6;
|
||||
if ( lastRow !== 0 ) {
|
||||
row.append( col( ( 6 - lastRow ) * 2, span( '' ) ) );
|
||||
}
|
||||
} );
|
||||
},
|
||||
appendInteriors: function () {
|
||||
const options = [],
|
||||
row = get( 'row-interiors' );
|
||||
SavegameEditor.Constants.interiors.forEach( ( interior, index ) => {
|
||||
const input = inputNumber( `interiors_${ index }`, 0, interior[ 1 ], tempFile.readU8( Number( interior[ 0 ] ) ) );
|
||||
row.append(
|
||||
col( 3, span( interior[ 1 ] ) ),
|
||||
col( 1, input )
|
||||
);
|
||||
input.dataset.offset = interior[ 0 ];
|
||||
input.addEventListener( 'change', SavegameEditor._write_supply_amount );
|
||||
options.push( interior[ 1 ] );
|
||||
} );
|
||||
row.prepend( col( 4, select( 'interiors', options, SavegameEditor.updateInterior ) ) );
|
||||
row.prepend( col( 8, span( 'Active interior' ) ) );
|
||||
},
|
||||
preload: function () {
|
||||
setNumericRange( 'money', 0, 9999999 );
|
||||
@@ -247,16 +282,8 @@ SavegameEditor = {
|
||||
get( 'number-pedometer' ).addEventListener( 'change', SavegameEditor._write_pedometer );
|
||||
get( 'number-walking-counter' ).addEventListener( 'change', SavegameEditor._write_walking_counter );
|
||||
|
||||
[
|
||||
[ 'fooddrink', 99 ],
|
||||
[ 'toys', 99 ],
|
||||
[ 'accessories', 99 ],
|
||||
[ 'furnitures', 99 ],
|
||||
[ 'leashes', 99 ],
|
||||
[ 'bowlsdrink', 1 ],
|
||||
[ 'bowlsfood', 1 ],
|
||||
[ 'interiors', 1 ]
|
||||
].forEach( SavegameEditor.appendItem );
|
||||
SavegameEditor.appendItems();
|
||||
SavegameEditor.appendInteriors();
|
||||
},
|
||||
|
||||
/* load function */
|
||||
@@ -300,7 +327,7 @@ SavegameEditor = {
|
||||
const pet_tab_input = document.createElement( 'input' );
|
||||
pet_tab_input.name = 'pet_tabgroup';
|
||||
pet_tab_input.type = 'radio';
|
||||
pet_tab_input.id = 'pet_tab' + i;
|
||||
pet_tab_input.id = `pet_tab${ i }`;
|
||||
pet_tab_input.className = 'pet_tab';
|
||||
if ( first_pet ) {
|
||||
pet_tab_input.checked = true;
|
||||
@@ -309,20 +336,20 @@ SavegameEditor = {
|
||||
pet_tabs.insertBefore( pet_tab_input, pet_tabs_content_seperator );
|
||||
const pet_tab_label = document.createElement( 'label' );
|
||||
pet_tab_label.className = 'pet_label';
|
||||
pet_tab_label.setAttribute( 'for', 'pet_tab' + i );
|
||||
pet_tab_label.setAttribute( 'for', `pet_tab${ i }` );
|
||||
pet_tabs.insertBefore( pet_tab_label, pet_tabs_content_seperator );
|
||||
|
||||
const templateClone = template.content.cloneNode( true );
|
||||
templateClone.querySelector( '.row' ).id = 'row-pet' + i;
|
||||
templateClone.querySelector( '.row' ).id = `row-pet${ i }`;
|
||||
for ( const ele of templateClone.querySelectorAll( '.update-name' ) ) {
|
||||
if ( ( ele.id || '' ).includes( 'petX' ) ) {
|
||||
ele.id = ele.id.replace( /petX/g, 'pet' + i );
|
||||
ele.id = ele.id.replace( /petX/g, `pet${ i }` );
|
||||
}
|
||||
if ( ele.getAttribute( 'for' ) ) {
|
||||
ele.setAttribute( 'for', ele.getAttribute( 'for' ).replace( /petX/g, 'pet' + i ) );
|
||||
ele.setAttribute( 'for', ele.getAttribute( 'for' ).replace( /petX/g, `pet${ i }` ) );
|
||||
}
|
||||
if ( ( ele.dataset && ele.dataset.var || '' ).includes( 'PETX' ) ) {
|
||||
ele.dataset.var = ele.dataset.var.replace( /PETX/g, 'PET' + i );
|
||||
ele.dataset.var = ele.dataset.var.replace( /PETX/g, `PET${ i }` );
|
||||
}
|
||||
}
|
||||
const breed = SavegameEditor._getPetData( i - 1, 'PET_BREED_OFFSET' );
|
||||
@@ -352,9 +379,9 @@ SavegameEditor = {
|
||||
);
|
||||
if ( breedImgTmp ) {
|
||||
breedImg = breedImgTmp.cloneNode();
|
||||
breedImg.id = 'petimage' + i;
|
||||
breedImg.id = `petimage${ i }`;
|
||||
}
|
||||
get( 'container-pet' + i + '-breed' ).appendChild( breedImg );
|
||||
get( `container-pet${ i }-breed` ).appendChild( breedImg );
|
||||
const breedImg2 = breedImg.cloneNode();
|
||||
breedImg2.id = '';
|
||||
pet_tab_label.appendChild( breedImg2 );
|
||||
@@ -382,59 +409,59 @@ SavegameEditor = {
|
||||
} );
|
||||
};
|
||||
dialogbtn.innerText = 'Change';
|
||||
get( 'container-pet' + i + '-breed' ).appendChild( dialogbtn );
|
||||
get( `container-pet${ i }-breed` ).appendChild( dialogbtn );
|
||||
|
||||
get( 'container-pet' + i + '-gender' ).appendChild( select( 'pet' + i + '-gender', SavegameEditor.Constants.GENDERS, SavegameEditor._write_pet_value ) );
|
||||
setValue( 'pet' + i + '-name', tempFile.readU16String( SavegameEditor.Constants.PET_OFFSET[ i - 1 ] + SavegameEditor.Constants.PET_NAME_OFFSET, 10 ) );
|
||||
get( `container-pet${ i }-gender` ).appendChild( select( `pet${ i }-gender`, SavegameEditor.Constants.GENDERS, SavegameEditor._write_pet_value ) );
|
||||
setValue( `pet${ i }-name`, tempFile.readU16String( SavegameEditor.Constants.PET_OFFSET[ i - 1 ] + SavegameEditor.Constants.PET_NAME_OFFSET, 10 ) );
|
||||
const pet_tab_label_name = document.createElement( 'span' );
|
||||
pet_tab_label_name.innerText = getValue( 'pet' + i + '-name' );
|
||||
pet_tab_label_name.className = 'pet' + i + '_name';
|
||||
pet_tab_label_name.innerText = getValue( `pet${ i }-name` );
|
||||
pet_tab_label_name.className = `pet${ i }_name`;
|
||||
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 );
|
||||
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 );
|
||||
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 );
|
||||
|
||||
if ( isDog ) {
|
||||
get( 'container-pet' + i + '-disc' ).appendChild( select( 'pet' + i + '-disc', SavegameEditor.Constants.PET_COMP_RANKS, SavegameEditor._write_pet_value ) );
|
||||
setValue( 'pet' + i + '-disc', SavegameEditor._getPetData( i - 1, 'PET_COMP_HIGHEST_PLAYED1' ) );
|
||||
get( 'container-pet' + i + '-lure' ).appendChild( select( 'pet' + i + '-lure', SavegameEditor.Constants.PET_COMP_RANKS, SavegameEditor._write_pet_value ) );
|
||||
setValue( 'pet' + i + '-lure', SavegameEditor._getPetData( i - 1, 'PET_COMP_HIGHEST_PLAYED3' ) );
|
||||
get( 'container-pet' + i + '-obedience' ).appendChild( select( 'pet' + i + '-obedience', SavegameEditor.Constants.PET_COMP_RANKS, SavegameEditor._write_pet_value ) );
|
||||
setValue( 'pet' + i + '-obedience', SavegameEditor._getPetData( i - 1, 'PET_COMP_HIGHEST_PLAYED2' ) );
|
||||
get( `container-pet${ i }-disc` ).appendChild( select( `pet${ i }-disc`, SavegameEditor.Constants.PET_COMP_RANKS, SavegameEditor._write_pet_value ) );
|
||||
setValue( `pet${ i }-disc`, SavegameEditor._getPetData( i - 1, 'PET_COMP_HIGHEST_PLAYED1' ) );
|
||||
get( `container-pet${ i }-lure` ).appendChild( select( `pet${ i }-lure`, SavegameEditor.Constants.PET_COMP_RANKS, SavegameEditor._write_pet_value ) );
|
||||
setValue( `pet${ i }-lure`, SavegameEditor._getPetData( i - 1, 'PET_COMP_HIGHEST_PLAYED3' ) );
|
||||
get( `container-pet${ i }-obedience` ).appendChild( select( `pet${ i }-obedience`, SavegameEditor.Constants.PET_COMP_RANKS, SavegameEditor._write_pet_value ) );
|
||||
setValue( `pet${ i }-obedience`, SavegameEditor._getPetData( i - 1, 'PET_COMP_HIGHEST_PLAYED2' ) );
|
||||
} else {
|
||||
get( 'pet' + i + '_comp_outer' ).style.display = 'none';
|
||||
get( `pet${ i }_comp_outer` ).style.display = 'none';
|
||||
}
|
||||
const personality = SavegameEditor.Constants.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' ) ) ] );
|
||||
setValue( `pet${ i }-personality`, personality[ Number( SavegameEditor._getPetData( i - 1, 'PET_GENDER_OFFSET' ) ) ] );
|
||||
// Experimental
|
||||
setNumericRange( 'pet' + i + '-hunger', 0, 17529 );
|
||||
setNumericRange( 'pet' + i + '-thirst', 0, 17529 );
|
||||
setNumericRange( 'pet' + i + '-coat', 0, 17529 );
|
||||
setValue( 'pet' + i + '-hunger', SavegameEditor._getPetData( i - 1, 'PET_HUNGER_OFFSET', 16 ) );
|
||||
setValue( 'pet' + i + '-thirst', SavegameEditor._getPetData( i - 1, 'PET_THIRST_OFFSET', 16 ) );
|
||||
setValue( 'pet' + i + '-coat', SavegameEditor._getPetData( i - 1, 'PET_COAT_OFFSET', 16 ) );
|
||||
get( 'number-pet' + i + '-hunger' ).addEventListener( 'change', SavegameEditor._write_pet_value );
|
||||
get( 'number-pet' + i + '-thirst' ).addEventListener( 'change', SavegameEditor._write_pet_value );
|
||||
get( 'number-pet' + i + '-coat' ).addEventListener( 'change', SavegameEditor._write_pet_value );
|
||||
setNumericRange( `pet${ i }-hunger`, 0, 17529 );
|
||||
setNumericRange( `pet${ i }-thirst`, 0, 17529 );
|
||||
setNumericRange( `pet${ i }-coat`, 0, 17529 );
|
||||
setValue( `pet${ i }-hunger`, SavegameEditor._getPetData( i - 1, 'PET_HUNGER_OFFSET', 16 ) );
|
||||
setValue( `pet${ i }-thirst`, SavegameEditor._getPetData( i - 1, 'PET_THIRST_OFFSET', 16 ) );
|
||||
setValue( `pet${ i }-coat`, SavegameEditor._getPetData( i - 1, 'PET_COAT_OFFSET', 16 ) );
|
||||
get( `number-pet${ i }-hunger` ).addEventListener( 'change', SavegameEditor._write_pet_value );
|
||||
get( `number-pet${ i }-thirst` ).addEventListener( 'change', SavegameEditor._write_pet_value );
|
||||
get( `number-pet${ i }-coat` ).addEventListener( 'change', SavegameEditor._write_pet_value );
|
||||
|
||||
setNumericRange( 'pet' + i + '-level', 0, 99999 );
|
||||
setNumericRange( `pet${ i }-level`, 0, 99999 );
|
||||
const points = SavegameEditor._getPetData( i - 1, ( isDog ? 'PET_POINTS_OFFSET_DOG' : 'PET_POINTS_OFFSET_CAT' ), 32 );
|
||||
for ( let j = 0; j < level_borders.length; j++ ) {
|
||||
if ( points >= level_borders[ j ][ 0 ] && points <= level_borders[ j ][ 1 ] ) {
|
||||
setValue( 'pet' + i + '-level', j );
|
||||
setValue( `pet${ i }-level`, j );
|
||||
break;
|
||||
}
|
||||
}
|
||||
const level_ele = get( 'number-pet' + i + '-level' );
|
||||
const level_ele = get( `number-pet${ i }-level` );
|
||||
level_ele.dataset.is_dog = isDog;
|
||||
level_ele.addEventListener( 'change', SavegameEditor._mark_as_changed );
|
||||
}
|
||||
|
@@ -217,6 +217,7 @@ struct furnitures_t {
|
||||
u8 item0x1F0 @ 0x1F0 [[name("Comfy Couch")]];
|
||||
u8 item0x1FB @ 0x1FB [[name("Designer Chair")]];
|
||||
u8 item0x1F2 @ 0x1F2 [[name("Dining Table Set")]];
|
||||
u8 item0x206 @ 0x206 [[name("Display Case")]];
|
||||
u8 item0x1E7 @ 0x1E7 [[name("Display Shelves")]];
|
||||
u8 item0x1ED @ 0x1ED [[name("Dresser")]];
|
||||
u8 item0x205 @ 0x205 [[name("Electronic Fan")]];
|
||||
|
Reference in New Issue
Block a user