mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
Merge branch 'codex/fix/pony-flag-sprite-coords'
This commit is contained in:
@@ -56,7 +56,12 @@ describe('board-flags', () => {
|
||||
x: 0,
|
||||
y: 0,
|
||||
});
|
||||
expect(getBoardFlagDefinition('pony', 'AJ')).toMatchObject({ code: 'AJ', label: 'Applejack', x: 80, y: 0 });
|
||||
// Selector order (PONY_FLAG_ENTRIES) differs from the sprite's alphabetical-by-code layout,
|
||||
// so these codes only land on the right cell via PONY_FLAG_COORDINATES.
|
||||
expect(getBoardFlagDefinition('pony', 'AB')).toMatchObject({ code: 'AB', label: 'Aria Blaze', x: 16, y: 0 });
|
||||
expect(getBoardFlagDefinition('pony', 'ADA')).toMatchObject({ code: 'ADA', label: 'Adagio Dazzle', x: 32, y: 0 });
|
||||
expect(getBoardFlagDefinition('pony', 'AJ')).toMatchObject({ code: 'AJ', label: 'Applejack', x: 48, y: 0 });
|
||||
expect(getBoardFlagDefinition('pony', 'AN')).toMatchObject({ code: 'AN', label: 'Anon', x: 64, y: 0 });
|
||||
expect(getBoardFlagDefinition('pony', 'ZS')).toMatchObject({ code: 'ZS', label: 'Zipp Storm', x: 16, y: 144 });
|
||||
});
|
||||
});
|
||||
|
||||
+88
-1
@@ -78,6 +78,7 @@ const POLITICAL_FLAG_COORDINATES = {
|
||||
WP: [64, 48],
|
||||
} as const satisfies Record<(typeof POLITICAL_FLAG_ENTRIES)[number][0], readonly [number, number]>;
|
||||
|
||||
// Order follows 4chan's board flag selector. Coordinates follow flags/mlp/flags.1.css.
|
||||
const PONY_FLAG_ENTRIES = [
|
||||
['4CC', '4cc /mlp/'],
|
||||
['ADA', 'Adagio Dazzle'],
|
||||
@@ -164,6 +165,92 @@ const PONY_FLAG_ENTRIES = [
|
||||
['ZS', 'Zipp Storm'],
|
||||
] as const;
|
||||
|
||||
const PONY_FLAG_COORDINATES = {
|
||||
'4CC': [0, 0],
|
||||
AB: [16, 0],
|
||||
ADA: [32, 0],
|
||||
AJ: [48, 0],
|
||||
AN: [64, 0],
|
||||
ANF: [80, 0],
|
||||
APB: [96, 0],
|
||||
AU: [112, 0],
|
||||
BB: [128, 0],
|
||||
BM: [0, 16],
|
||||
BP: [16, 16],
|
||||
BS: [32, 16],
|
||||
CB: [48, 16],
|
||||
CG: [64, 16],
|
||||
CHE: [80, 16],
|
||||
CL: [96, 16],
|
||||
CO: [112, 16],
|
||||
DAY: [128, 16],
|
||||
DD: [0, 32],
|
||||
DER: [16, 32],
|
||||
DIS: [32, 32],
|
||||
DT: [48, 32],
|
||||
EQA: [64, 32],
|
||||
EQF: [80, 32],
|
||||
EQI: [96, 32],
|
||||
EQP: [112, 32],
|
||||
EQR: [128, 32],
|
||||
EQS: [0, 48],
|
||||
EQT: [16, 48],
|
||||
ERA: [32, 48],
|
||||
FAU: [48, 48],
|
||||
FL: [64, 48],
|
||||
FLE: [80, 48],
|
||||
GI: [96, 48],
|
||||
HT: [112, 48],
|
||||
IZ: [128, 48],
|
||||
LI: [0, 64],
|
||||
LT: [16, 64],
|
||||
LY: [32, 64],
|
||||
MA: [48, 64],
|
||||
MAU: [64, 64],
|
||||
MIN: [80, 64],
|
||||
NI: [96, 64],
|
||||
NUR: [112, 64],
|
||||
OCT: [128, 64],
|
||||
PAR: [0, 80],
|
||||
PC: [16, 80],
|
||||
PCE: [32, 80],
|
||||
PI: [48, 80],
|
||||
PLU: [64, 80],
|
||||
PM: [80, 80],
|
||||
PP: [96, 80],
|
||||
QC: [112, 80],
|
||||
RAR: [128, 80],
|
||||
RD: [0, 96],
|
||||
RLU: [16, 96],
|
||||
S1L: [32, 96],
|
||||
SCO: [48, 96],
|
||||
SHI: [64, 96],
|
||||
SIL: [80, 96],
|
||||
SON: [96, 96],
|
||||
SP: [112, 96],
|
||||
SPI: [128, 96],
|
||||
SPT: [0, 112],
|
||||
SS: [16, 112],
|
||||
STA: [32, 112],
|
||||
STL: [48, 112],
|
||||
SUN: [64, 112],
|
||||
SUS: [80, 112],
|
||||
SWB: [96, 112],
|
||||
TFA: [112, 112],
|
||||
TFO: [128, 112],
|
||||
TFP: [0, 128],
|
||||
TFS: [16, 128],
|
||||
TFT: [32, 128],
|
||||
TFV: [48, 128],
|
||||
TP: [64, 128],
|
||||
TS: [80, 128],
|
||||
TWI: [96, 128],
|
||||
TX: [112, 128],
|
||||
VS: [128, 128],
|
||||
ZE: [0, 144],
|
||||
ZS: [16, 144],
|
||||
} as const satisfies Record<(typeof PONY_FLAG_ENTRIES)[number][0], readonly [number, number]>;
|
||||
|
||||
const normalizeCode = (value: string | undefined) => value?.trim().toUpperCase();
|
||||
|
||||
const buildFlagDefinitions = (
|
||||
@@ -204,7 +291,7 @@ const BOARD_FLAGS_BY_KIND: Record<BoardFlagKind, ReadonlyMap<string, BoardFlagDe
|
||||
POLITICAL_FLAG_COLUMNS,
|
||||
POLITICAL_FLAG_COORDINATES,
|
||||
),
|
||||
pony: buildFlagDefinitions(PONY_FLAG_ENTRIES, 'pony', PONY_FLAG_SPRITE_PATH, PONY_FLAG_WIDTH, PONY_FLAG_HEIGHT, PONY_FLAG_COLUMNS),
|
||||
pony: buildFlagDefinitions(PONY_FLAG_ENTRIES, 'pony', PONY_FLAG_SPRITE_PATH, PONY_FLAG_WIDTH, PONY_FLAG_HEIGHT, PONY_FLAG_COLUMNS, PONY_FLAG_COORDINATES),
|
||||
};
|
||||
|
||||
export const normalizeBoardFlagKind = (value: string | undefined): BoardFlagKind | undefined => {
|
||||
|
||||
Reference in New Issue
Block a user