diff options
author | mid-kid <esteve.varela@gmail.com> | 2018-03-25 16:18:33 +0200 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2018-03-25 16:18:33 +0200 |
commit | 0d9241889fc8a2f047b9fd6db25e55de1e721877 (patch) | |
tree | 4ae588ae9d97639b456e6d2ba64a94676ddcf703 /engine/pokemon/checknickerrors.asm | |
parent | 60e21a86638cad5fd25133cda1c545461304d902 (diff) |
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.
Diffstat (limited to 'engine/pokemon/checknickerrors.asm')
-rw-r--r-- | engine/pokemon/checknickerrors.asm | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/engine/pokemon/checknickerrors.asm b/engine/pokemon/checknickerrors.asm new file mode 100644 index 000000000..87ebd6bb3 --- /dev/null +++ b/engine/pokemon/checknickerrors.asm @@ -0,0 +1,74 @@ +CheckNickErrors:: ; 669f +; error-check monster nick before use +; must be a peace offering to gamesharkers + +; input: de = nick location + + push bc + push de + ld b, MON_NAME_LENGTH + +.checkchar +; end of nick? + ld a, [de] + cp "@" ; terminator + jr z, .end + +; check if this char is a text command + ld hl, .textcommands + dec hl +.loop +; next entry + inc hl +; reached end of commands table? + ld a, [hl] + cp -1 + jr z, .done + +; is the current char between this value (inclusive)... + ld a, [de] + cp [hl] + inc hl + jr c, .loop +; ...and this one? + cp [hl] + jr nc, .loop + +; replace it with a "?" + ld a, "?" + ld [de], a + jr .loop + +.done +; next char + inc de +; reached end of nick without finding a terminator? + dec b + jr nz, .checkchar + +; change nick to "?@" + pop de + push de + ld a, "?" + ld [de], a + inc de + ld a, "@" + ld [de], a +.end +; if the nick has any errors at this point it's out of our hands + pop de + pop bc + ret + +.textcommands ; 66cf +; table defining which characters are actually text commands +; format: + ; ≥ < + db TX_START, TX_BOX + 1 + db "<PLAY_G>", "<JP_18>" + 1 + db "<NI>", "<NO>" + 1 + db "<ROUTE>", "<GREEN>" + 1 + db "<ENEMY>", "<ENEMY>" + 1 + db "<MOM>", "<TM>" + 1 + db "<ROCKET>", "┘" + 1 + db -1 ; end |