Commit Graph

957 Commits

Author SHA1 Message Date
Rangi
81306889e3 Merge branch 'master' of https://github.com/pret/pokecrystal 2018-04-04 23:56:40 -04:00
yenatch
f750d4f418
Merge pull request #505 from mid-kid/battlecommands
Battle command fixes
2018-04-04 21:18:15 -04:00
mid-kid
d4025863cf Rename some battle commands
`hittarget` was misleading, as it doesn't actually "hit" the target, it
only plays the animation. As such, I've renamed it to `moveanim`.

`checkfaint` has nothing to do with checking if the user or target has
fainted, instead, it applies wCurDamage onto the target's HP, hitting
the substitute if applicable. I've renamed the command to `applydamage`
and all of its subfunctions accordingly.
2018-04-04 23:27:40 +02:00
mid-kid
800f948914 Label BattleCommand_BeatUpFailText 2018-04-04 22:40:35 +02:00
mid-kid
c1e3d17769 endloop loops back to critical itself
The comments seemed to specify that `endloop` loops back to the command
before `critical` and executes that, which simply isn't true. It loops
back to `critical` itself, and executes `critical`, before continuing on
with the remaining commands.
2018-04-04 22:40:26 +02:00
mid-kid
682ca7e93c Label bidefailtext
This "unknown" battle command is actually used to give the proper fail
message to bide.
2018-04-04 22:40:21 +02:00
mid-kid
e1da37e033 Comment SapHealth
Also fixed some Beat Up inconsistencies to make it more readable.
2018-04-04 22:35:47 +02:00
mid-kid
d3cc861d33 Fix snake_case filenames
Renamed a bunch of files, most of them one-off functions, to better fit
the general snake_case naming scheme. Also renamed some awfully long filenames.
2018-04-04 22:26:07 +02:00
mid-kid
81fff9bb80 Fix file permissions
I have no idea why this was a thing (do people store this repo on FAT32
flash drives or something?), but quite a bit of files had a permission
of 755. This isn't really a problem, but it's inconsistent and weird.
2018-04-01 17:05:10 +02:00
mid-kid
05ba221eb5 flagpredef.asmsmallflag.asm 2018-03-25 19:14:26 +02:00
mid-kid
be76ee56a8 Organize the engine/ directory, director's cut
Cleaned up `engine/routines`, in favor of moving files into more
appropriate directories. predef-related routines are now in top-level
`engine`.
`rtc/delete_save_change_clock.asm` has been split into both
`menus/delete_save.asm` and `rtc/reset_password.asm`.

Made a new subdirectory:
* engine/math: Contains all generic math-related routines.
2018-03-25 18:24:14 +02:00
mid-kid
0d9241889f Organize the engine/ directory, take 3
Renamed `title` to `movies`.
Moved some functions from `engine/routines/` to their fitting
directories, and cleaned up the base `engine/` directory.
Moved `engine/pokemon/tmhm.asm` back to `engine/items/`.

Made a new subdirectory:
* engine/tilesets: Contains all map-related graphics routines.
2018-03-25 16:18:33 +02:00
Rangi
0447ee0cf9 Relabel some map-related WRAM
wMisc -> {wSurroundingTiles, wBoxPartialData, wLink_c608}
wOverworldMap -> {wOverworldMapBlocks, wHallOfFamePokemonList}
2018-03-19 11:36:14 -04:00
mid-kid
60e21a8663 Move init_gender and intro_menu to menus
They are actually some kind of menus, and as such make sense there.
2018-03-14 13:38:36 +01:00
mid-kid
97c511cd2f Organize the engine/ directory, take 2
Renamed `game` to `games` and `menu` to `menus`.
Moved some functions from `engine/routines/` to their fitting subdirectories.

Made two new subdirectories:
* engine/rtc: Contains all RTC-related things. Menus, hardware, misc
functions.
* engine/items: Contains all item-related things. Pack, item effects,
other item handlers.
2018-03-14 13:28:36 +01:00
mid-kid
baa0dc5a96 Organize the engine/ directory
This is an informed attempt at reorganizing the engine/ directory by
creating categorized subdirectories, in order to make it easier to
navigate and find things.

The directories created are as follows:
* engine/game: Contains all "minigames", things like the unown puzzle
and slot machine.
* engine/gfx: Contains all handling of graphics. From loading palettes
to playing animations.
* engine/link: Contains all multiplayer functionality.
* engine/menu: Contains all generic/misc. menus and menu code.
Other, more specialized menus are in their own subdirectories (pokedex,
pokegear, party menu, etc).
* engine/overworld: Contains all handling of the overworld. From loading
and connecting maps to wild encounters and the scripting engine.
* engine/pokegear: In the same vein as engine/pokedex, except it could
use some more splitting up.
* engine/pokemon: Contains everything related to manipulating pokemon
data. From the pokemon storage system to evolution and mail.
* engine/printer: Contains everything related to printing things as well
as the printer communication.
* engine/title: Contains intro sequences, title screens and credits.
2018-03-13 13:21:40 +01:00
Rangi
7e9dbde549 HOF_MASTER_COUNT EQU 200 2018-03-04 00:27:22 -05:00
Rangi
bde9ffff6e Improve some code labels 2018-03-02 19:39:16 -05:00
Rangi
43b5f90457 Replace "Map<MapName>Signpost<#>Script" labels 2018-02-27 19:33:38 -05:00
Rangi
e2c15b0b92 * BillPhoneGeneriText -> BillPhoneGenericText
* data/phone/text/trainers1.asm -> data/phone/text/trainers.asm
* ,ROM -> , ROM0
2018-02-26 22:29:09 -05:00
Rangi
5959548c01 Document HOF Master bug (close #494) 2018-02-26 11:51:16 -05:00
Rangi
b254a4571d ENGINE_BUG_CONTEST_ON -> ENGINE_MAIN_MENU_MOBILE_CHOICES (resolves #490)
Went with CHOICES instead of HIDDEN since setting the flag would presumably have shown the items, not hidden them
2018-02-25 22:23:20 -05:00
Rangi
335c2699f0 Merge branch 'master' of https://github.com/pret/pokecrystal
# Conflicts:
#	constants/map_constants.asm
#	constants/wram_constants.asm
#	data/radio/oaks_pkmn_talk_routes.asm
#	data/radio/pnp_hidden_places.asm
#	engine/battle/core.asm
#	engine/breeding.asm
#	engine/phone/phone_scripts.asm
#	engine/radio.asm
#	maps/BattleTower1F.asm
#	maps/OlivineLighthouse2F.asm
#	maps/OlivineLighthouse6F.asm
#	maps/PokemonFanClub.asm
#	maps/RadioTower1F.asm
#	maps/RadioTower2F.asm
#	maps/Route30BerryHouse.asm
#	maps/Route34IlexForestGate.asm
#	maps/Route36NationalParkGate.asm
#	maps/RuinsOfAlphKabutoChamber.asm
#	maps/RuinsOfAlphResearchCenter.asm
#	maps/VermilionPort.asm
#	maps/VictoryRoad.asm
2018-02-25 20:39:54 -05:00
yenatch
f44f306cfd
Merge pull request #477 from mid-kid/master
Medium-sized cleanups
2018-02-25 20:12:59 -05:00
yenatch
f404af8a43
Merge pull request #486 from surskitty/master
Another batch of label names
2018-02-25 20:12:31 -05:00
Rangi
f964d04a87 * loadmenuheader -> loadmenu (ead103d)
* objectface -> turnobject (c834bda)
2018-02-25 20:05:37 -05:00
Rangi
be28a0ff4e Meaningful $ff values 2018-02-25 19:50:48 -05:00
Rangi
60add76ee7 * Remove rept 4 (fa3192e)
* FindGreaterThanThatLevel -> FindAboveLevel (132fe46)
* More meaningful egg group names (0eeb00d)
2018-02-25 19:23:01 -05:00
mid-kid
3d34f5a5a3 Label wPokemonWithdrawDepositParameter of RemoveMonFromPartyOrBox
It takes a clearly different parameter, completely unrelated and
different in function to PC_DEPOSIT and PC_WITHDRAW.
2018-02-22 21:36:14 +01:00
mid-kid
a22343d32c Fix TRUE/FALSE constants for CalcMonStats 2018-02-22 18:12:43 +01:00
mid-kid
e8bc86d1fe Pkmn -> Mon
Since we're aiming for consistency across the codebase, I believe it
includes a uniform way to refer to the creatures this game consists of
in the labels of the code.
The only exceptions to this rule are labels referring to things named
through the use of the <PK><MN> or <PKMN> characters, in which case PKMN
is used.

Most of this was already consistent enough™, I just picked the
convention with the most occurences and fixed the outliers.
2018-02-22 17:39:06 +01:00
Rangi
ff3a43d4b0 Use maskbits NUM_TYPES 2018-02-20 10:54:48 -05:00
Rangi
612fd7cb96 Merge branch 'master' of https://github.com/pret/pokecrystal
# Conflicts:
#	maps/KrissHouse2F.asm
2018-02-15 21:21:58 -05:00
mid-kid
23b773d5c2 Label some daycare-related functions 2018-02-14 11:51:47 +01:00
mid-kid
f1c23f2153 Fix use of one constant 2018-02-13 08:36:25 +01:00
mid-kid
98e6878429 CalcwBufferMonStats -> CalcBufferMonStats
The 'w' was probably added in some mass-replacement.
It's completely irrelevant to the function itself and doesn't fit the
PascalCase model.
2018-02-12 23:58:21 +01:00
mid-kid
89c5f0adf0 Comment GeneratePartyMonStats 2018-02-09 22:21:59 +01:00
Rangi
c158404b7c questionmark is not a pokemon pic 2018-02-07 14:43:58 -05:00
Rangi
118c387d73 Remove commented G/S roaming Suicune code 2018-02-05 22:03:40 -05:00
Rangi
71f51955c9 Terser name for the does-nothing effect 2018-02-05 13:07:22 -05:00
Rangi
c648a6ced9 Off by one 2018-02-05 13:05:26 -05:00
Rangi
96c058f0a7 No redundant item effect labels 2018-02-05 13:03:05 -05:00
luckytyphlosion
8b007e8d51 Fix more w-izing edge cases. 2018-02-04 22:45:04 -05:00
Rangi
bc3cc69749 Consistent "X percent [+/- Y]" order 2018-02-04 21:21:34 -05:00
Rangi
d6b00d0cc1 Sync code with wiki 2018-02-04 13:16:40 -05:00
Rangi
6c405e3859 Keep specials files together 2018-02-04 12:03:31 -05:00
Rangi
885080f213 "chances" → "probabilities", since other files use that term and "changes" exists right next to it 2018-02-04 11:46:53 -05:00
surskitty
e668b6cf3a Merge branch 'master' of github.com:pret/pokecrystal 2018-02-03 22:18:56 -05:00
Rangi
73ea7c6326 Macro factors out sine code, just like sine data, since it's used 5 times 2018-02-03 21:11:55 -05:00
Rangi
271aa20b73 Keep documentation in sync with new WRAM labels 2018-02-03 20:40:21 -05:00
Rangi
32ed487a47 Merge branch 'master' of https://github.com/pret/pokecrystal
# Conflicts:
#	audio/engine.asm
#	constants/gfx_constants.asm
#	constants/map_data_constants.asm
#	constants/pokemon_data_constants.asm
#	constants/sprite_constants.asm
#	constants/wram_constants.asm
#	data/maps/data.asm
#	engine/battle/ai/scoring.asm
#	engine/battle/core.asm
#	engine/battle/effect_commands.asm
#	engine/battle/misc.asm
#	engine/battle_anims/getpokeballwobble.asm
#	engine/breeding.asm
#	engine/buy_sell_toss.asm
#	engine/decorations.asm
#	engine/events/battle_tower/battle_tower.asm
#	engine/events/battle_tower/rules.asm
#	engine/events/buena.asm
#	engine/events/bug_contest/contest_2.asm
#	engine/events/daycare.asm
#	engine/events/dratini.asm
#	engine/events/halloffame.asm
#	engine/events/happiness_egg.asm
#	engine/events/kurt.asm
#	engine/events/lucky_number.asm
#	engine/events/magnet_train.asm
#	engine/events/overworld.asm
#	engine/events/pokerus/pokerus.asm
#	engine/events/print_unown.asm
#	engine/events/print_unown_2.asm
#	engine/events/unown_walls.asm
#	engine/item_effects.asm
#	engine/link.asm
#	engine/mon_menu.asm
#	engine/player_object.asm
#	engine/routines/playslowcry.asm
#	engine/scripting.asm
#	engine/search.asm
#	engine/search2.asm
#	engine/specials.asm
#	engine/start_menu.asm
#	engine/timeset.asm
#	home/battle_vars.asm
#	home/map.asm
#	maps/GoldenrodUndergroundSwitchRoomEntrances.asm
#	maps/IlexForest.asm
#	maps/KrissHouse2F.asm
#	maps/Route39Barn.asm
#	mobile/mobile_12_2.asm
#	mobile/mobile_40.asm
#	mobile/mobile_5f.asm
#	wram.asm
2018-02-03 19:42:56 -05:00
Rangi
6ff2cb20e6 map → map_id; map_def → map; map_data → map_attributes 2018-02-03 17:11:55 -05:00
Rangi
e32e5212af use "x + -1" not "x +- 1"
(TODO: use "x - 1" once rgbds allows it)
2018-02-02 22:55:38 -05:00
Rangi
45373ec601 sine_wave macro parameterizes table size, not frequency ("amplitude" was an incorrect comment) 2018-02-02 22:45:42 -05:00
Rangi
c834bdadf2 spriteface → objectface, consistent with the other script commands 2018-02-02 21:50:43 -05:00
Rangi
aa8db1632c Remove checkmorn/checkday/checknite macros 2018-02-02 21:20:13 -05:00
Rangi
68d855c213 Script commands don't have underscores 2018-02-02 21:09:17 -05:00
Rangi
b7e44124d3 Fix confusing label 2018-02-02 12:29:42 -05:00
surskitty
8ea924ecd6 Converting what I can to locals. 2018-02-02 10:52:05 -05:00
Rangi
b2970e75f4 SCENE_DEFAULT=0 and SCENE_FINISHED=1 (generic constants for a common scene pattern) 2018-02-01 15:06:06 -05:00
Rangi
fcfe77bc3d Meaningful scene constant names
(Two common patterns: 0=default event and 1=nothing; and 0=nothing and 1=some event)
2018-02-01 13:03:21 -05:00
Rangi
a17623d96b Add scene ID constants (TODO: meaningful names) 2018-01-31 23:16:51 -05:00
Rangi
7d6e82ef1c NPC trade constants don't all just start with TRADE_ 2018-01-31 21:16:57 -05:00
Rangi
0eeb00d6ac Official egg group names 2018-01-31 12:03:43 -05:00
Rangi
08891da822 const_def N 2018-01-31 11:38:45 -05:00
Rangi
a9334f7468 Correct engine flag constants 2018-01-31 10:55:35 -05:00
Rangi
006d9f6441 Clarify big doll-related constants (Snorlax and Lapras are symmetrical, Onix is not) 2018-01-30 22:34:05 -05:00
Rangi
6e00101b89 Comment values of special pointers, same as predefs 2018-01-30 14:55:27 -05:00
luckytyphlosion
4a3384ab09 wSpritesEnd -> wVirtualOAMEnd. 2018-01-30 14:55:20 -05:00
luckytyphlosion
0b45e2e846 Fix wVirtualOAM labels, part 2. 2018-01-30 14:52:46 -05:00
luckytyphlosion
3c7ba37de7 Fix wVirtualOAM labels, part 1. 2018-01-30 14:47:14 -05:00
luckytyphlosion
3203ad7d50 Fix comment/style issues caused from w-izing. 2018-01-30 14:05:25 -05:00
Rangi
e22670438e Badge type boosts make sense in data/types/ 2018-01-28 01:17:32 -05:00
Rangi
4d93741a54 use PAL_COLOR_SIZE 2018-01-26 21:25:49 -05:00
Rangi
f5ba69f5e5 Sync documentation with code 2018-01-26 14:36:59 -05:00
Rangi
3332305bb4 Define more bit flag constants 2018-01-26 12:27:02 -05:00
Rangi
0cf4eb6895 Move-unique effect commands consistently go in engine/battle/move_effects/ 2018-01-26 11:36:00 -05:00
Rangi
a0cc4a3392 Move power data belongs in data/moves/ 2018-01-26 11:01:15 -05:00
Rangi
6ebe45e41f Move event data to data/events/ 2018-01-25 22:19:24 -05:00
Rangi
87514598be More battle data in data/battle/ 2018-01-25 21:34:42 -05:00
Rangi
d504fb8852 Move AI data tables into data/battle/ai (mirroring engine/battle/ai) so they're more discoverable. 2018-01-25 20:34:33 -05:00
Rangi
95fd05744d Remove "UnusedSpecial_" prefixes too 2018-01-24 11:20:41 -05:00
Rangi
d719d318e8 Remove Special_ prefix from special routines (close #478) 2018-01-24 11:17:05 -05:00
Rangi
132fe46925 Rename some routines to avoid conflicts when removing "Special_" prefixes 2018-01-24 11:12:02 -05:00
Rangi
505a6595bc EVENT_TEMPORARY_UNTIL_MAP_RELOAD_[1-8] (close issue #481) 2018-01-24 10:46:49 -05:00
luckytyphlosion
a1951cefc0 Prefix wram labels with w, part 2. 2018-01-23 17:39:09 -05:00
luckytyphlosion
79bd48f85c Replace Stack with wStack. 2018-01-23 16:49:58 -05:00
luckytyphlosion
f2ae74079f Prefix wram labels with w, part 1.
Handle edge cases first.
2018-01-23 16:45:34 -05:00
Rangi
09ff04dbfc wMenuData3 → w2DMenuData 2018-01-23 16:38:52 -05:00
Rangi
ead103d2c6 MenuDataHeader → MenuHeader, MenuData2 → MenuData (might complete issue #440) 2018-01-23 16:08:43 -05:00
Rangi
c5cc23a35f wGameTimerPause bit flag constants 2018-01-23 12:40:29 -05:00
Rangi
7c0553b2d2 x is the standard temp variable 2018-01-23 10:56:36 -05:00
Rangi
94ae404732 Separate data/mon_menu.asm 2018-01-23 10:46:26 -05:00
Rangi
0261bd2ff5 Daisy offers "grooming", not "massage" 2018-01-23 00:11:23 -05:00
Rangi
14ef9d3066 PALETTE_SIZE 2018-01-22 19:57:35 -05:00
Rangi
a73c532738 tile+color macros in gfx.asm 2018-01-22 19:40:17 -05:00
Rangi
f81add782a $20 is BG_MAP_WIDTH 2018-01-22 19:29:22 -05:00
Rangi
fa3192e3da No significance to what data is at the dummied-out broken pointers 2018-01-22 19:25:14 -05:00
Rangi
363d8b9242 KrissHouse → PlayersHouse 2018-01-22 19:10:09 -05:00
Rangi
f44b7ad5c3 Add data/text/ 2018-01-22 17:33:52 -05:00
Rangi
cb5e3378de Move type data to data/types/ 2018-01-22 16:23:34 -05:00
Rangi
efe6981a0d Add daily+weekly bit flags (close issue #429) 2018-01-22 15:59:24 -05:00
Rangi
3a7f518de4 wStatusFlags/2 bit constants 2018-01-22 15:40:43 -05:00
Rangi
4d8528f903 More engine flag constants 2018-01-22 14:34:55 -05:00
Rangi
125d51b3b2 More engine bit flag constants 2018-01-22 13:57:44 -05:00
Rangi
f75bfbeac3 Actually use PLAYER_OBJECT 2018-01-22 13:25:49 -05:00
Rangi
e135091f09 Day-Care bit flags 2018-01-22 13:18:23 -05:00
Rangi
7cef012335 wUnlockedUnowns engine flag constants
Use local labels for "End"ings
2018-01-22 13:00:35 -05:00
Rangi
6ecf18aa52 Engine flag bit constants for wPokegearFlags 2018-01-22 12:03:18 -05:00
Remy Oukaour
5ddea59ec5 wGBCOnlyDecompressBuffer 2018-01-21 20:10:38 -05:00
Remy Oukaour
7f54df58bf Group engine/pokedex files 2018-01-21 18:00:23 -05:00
Remy Oukaour
5e4fa42fa7 Unrelated routine gets its own file 2018-01-21 17:45:56 -05:00
Remy Oukaour
5db31feba9 POKEDEX_SCX 2018-01-21 16:53:19 -05:00
Remy Oukaour
81ba6c848a cgb layouts 2018-01-21 14:05:32 -05:00
Remy Oukaour
a8eb44b6e3 Separate new_game graphics 2018-01-21 13:58:16 -05:00
Remy Oukaour
732bb36c86 Scale addresses with PARTY_LENGTH 2018-01-20 14:10:31 -05:00
Remy Oukaour
05382d3e3c PARTY_LENGTH; MON_NAME; sgb_border.bin 2018-01-20 12:25:55 -05:00
Remy Oukaour
8127d1fbcf Rename BATTLETOWER_NROF constants 2018-01-20 12:05:16 -05:00
Remy Oukaour
b071dd364f Japanese characters in Japanese text (e.g. "ォ" not "," for $f4) 2018-01-19 21:49:16 -05:00
Remy Oukaour
ddec0ee305 More Japanese characters 2018-01-19 20:48:33 -05:00
Remy Oukaour
b199f6cfbf Use hSerialConnectionStatus constants elsewhere 2018-01-19 19:31:45 -05:00
Remy Oukaour
0c6338836d Resolve #471 (although link code still needs more cleanup, like its WRAM labels) 2018-01-19 14:49:43 -05:00
Remy Oukaour
e69544b61f More Unicode 2018-01-19 02:30:19 -05:00
Remy Oukaour
9576740b70 clean up GetName/NamesPointers 2018-01-19 00:29:05 -05:00
Remy Oukaour
25048bd12d wiggle → wobble 2018-01-19 00:16:08 -05:00
Remy Oukaour
2c7ca13194 Disambiguate "%" and "<NO>" 2018-01-18 22:30:30 -05:00
Remy Oukaour
a9f8aeb94e Remove trailing whitespace 2018-01-18 21:48:52 -05:00
Remy Oukaour
17336221e6 newline before para 2018-01-18 21:15:59 -05:00
Remy Oukaour
a3beba1e64 Use Japanese charmap definitions in strings 2018-01-18 20:49:17 -05:00
Remy Oukaour
2acaa96cf1 More charmap and home/text.asm documentation for JP chars 2018-01-18 18:34:20 -05:00
Remy Oukaour
72c4f9e04a More constants, related to map objects 2018-01-18 15:58:55 -05:00
Remy Oukaour
3bf8325edd More accurate constant/label names 2018-01-18 15:06:43 -05:00
Remy Oukaour
69ace7f48d Identify leftover SGB palettes from R/B 2018-01-18 12:31:19 -05:00
Remy Oukaour
f556ab9a4c Comment on RIVAL1 item 2018-01-18 12:03:58 -05:00
Remy Oukaour
22fd1221f5 More .pal files 2018-01-18 11:37:05 -05:00
Remy Oukaour
226d1812b3 Only graphics data goes in gfx/
Introduce PALRGB_WHITE constant for $7fff
2018-01-18 11:16:24 -05:00
Remy Oukaour
95c0c31c8f Eliminate wd000 2018-01-18 01:25:19 -05:00
Remy Oukaour
23f2c056e8 Heal machine jumptable index constants 2018-01-18 00:57:06 -05:00
Remy Oukaour
0306e94cc3 More SGB documentation 2018-01-18 00:16:03 -05:00
Remy Oukaour
c5d9ecae9c More SGB documentation 2018-01-17 22:48:57 -05:00
Remy Oukaour
4161ec98b4 Partially document SGB data from pokered 2018-01-17 22:37:04 -05:00
Remy Oukaour
b1c808f9f8 Rename some tilesets (close #467) 2018-01-17 14:50:34 -05:00
Remy Oukaour
6d20cf3e80 "CryHeader" → "Cry"; "Cry" → "MonCry" 2018-01-16 23:47:45 -05:00
Remy Oukaour
bf074f3598 map_header → map_def; map_header_2 → map_data 2018-01-16 23:25:00 -05:00
Remy Oukaour
01ba6bed88 Move code out of data/ 2018-01-16 18:07:06 -05:00
Remy Oukaour
5407d8de92 Cleaner Pokédex code 2018-01-16 17:59:05 -05:00
Remy Oukaour
50ce0a219e Fewer hard-coded values 2018-01-16 17:36:12 -05:00
Remy Oukaour
7b3de85a06 Avoid "+- 1" at every maskbits 2018-01-16 17:27:50 -05:00
Remy Oukaour
8048082114 Remove Predef_ prefix from routines listed in PredefPointers 2018-01-16 14:39:28 -05:00
Remy Oukaour
2b82338920 Phone data 0/7 are time masks 2018-01-15 22:00:56 -05:00