Skip to content

Commit f8a6d12

Browse files
committed
Replace job to name switches with X macro
1 parent e98bc95 commit f8a6d12

File tree

6 files changed

+219
-666
lines changed

6 files changed

+219
-666
lines changed

src/char/inter.c

Lines changed: 8 additions & 222 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include "common/db.h"
4545
#include "common/memmgr.h"
4646
#include "common/mmo.h"
47+
#include "common/msgtable.h"
4748
#include "common/nullpo.h"
4849
#include "common/showmsg.h"
4950
#include "common/socket.h"
@@ -148,233 +149,18 @@ static void inter_do_final_msg(void)
148149
for (i = 0; i < MAX_JOB_NAMES; i++)
149150
aFree(msg_table[i]);
150151
}
151-
/* from pc.c due to @accinfo. any ideas to replace this crap are more than welcome. */
152+
152153
static const char *inter_job_name(int class)
153154
{
154155
switch (class) {
155-
case JOB_NOVICE: // 550
156-
case JOB_SWORDMAN: // 551
157-
case JOB_MAGE: // 552
158-
case JOB_ARCHER: // 553
159-
case JOB_ACOLYTE: // 554
160-
case JOB_MERCHANT: // 555
161-
case JOB_THIEF: // 556
162-
return inter->msg_txt(550 - JOB_NOVICE + class);
163-
164-
case JOB_KNIGHT: // 557
165-
case JOB_PRIEST: // 558
166-
case JOB_WIZARD: // 559
167-
case JOB_BLACKSMITH: // 560
168-
case JOB_HUNTER: // 561
169-
case JOB_ASSASSIN: // 562
170-
return inter->msg_txt(557 - JOB_KNIGHT + class);
171-
172-
case JOB_KNIGHT2:
173-
return inter->msg_txt(557);
174-
175-
case JOB_CRUSADER: // 563
176-
case JOB_MONK: // 564
177-
case JOB_SAGE: // 565
178-
case JOB_ROGUE: // 566
179-
case JOB_ALCHEMIST: // 567
180-
case JOB_BARD: // 568
181-
case JOB_DANCER: // 569
182-
return inter->msg_txt(563 - JOB_CRUSADER + class);
183-
184-
case JOB_CRUSADER2:
185-
return inter->msg_txt(563);
186-
187-
case JOB_WEDDING: // 570
188-
case JOB_SUPER_NOVICE: // 571
189-
case JOB_GUNSLINGER: // 572
190-
case JOB_NINJA: // 573
191-
case JOB_XMAS: // 574
192-
return inter->msg_txt(570 - JOB_WEDDING + class);
193-
194-
case JOB_SUMMER:
195-
return inter->msg_txt(621);
196-
197-
case JOB_NOVICE_HIGH: // 575
198-
case JOB_SWORDMAN_HIGH: // 576
199-
case JOB_MAGE_HIGH: // 577
200-
case JOB_ARCHER_HIGH: // 578
201-
case JOB_ACOLYTE_HIGH: // 579
202-
case JOB_MERCHANT_HIGH: // 580
203-
case JOB_THIEF_HIGH: // 581
204-
return inter->msg_txt(575 - JOB_NOVICE_HIGH + class);
205-
206-
case JOB_LORD_KNIGHT: // 582
207-
case JOB_HIGH_PRIEST: // 583
208-
case JOB_HIGH_WIZARD: // 584
209-
case JOB_WHITESMITH: // 585
210-
case JOB_SNIPER: // 586
211-
case JOB_ASSASSIN_CROSS: // 587
212-
return inter->msg_txt(582 - JOB_LORD_KNIGHT + class);
213-
214-
case JOB_LORD_KNIGHT2:
215-
return inter->msg_txt(582);
216-
217-
case JOB_PALADIN: // 588
218-
case JOB_CHAMPION: // 589
219-
case JOB_PROFESSOR: // 590
220-
case JOB_STALKER: // 591
221-
case JOB_CREATOR: // 592
222-
case JOB_CLOWN: // 593
223-
case JOB_GYPSY: // 594
224-
return inter->msg_txt(588 - JOB_PALADIN + class);
225-
226-
case JOB_PALADIN2:
227-
return inter->msg_txt(588);
228-
229-
case JOB_BABY: // 595
230-
case JOB_BABY_SWORDMAN: // 596
231-
case JOB_BABY_MAGE: // 597
232-
case JOB_BABY_ARCHER: // 598
233-
case JOB_BABY_ACOLYTE: // 599
234-
case JOB_BABY_MERCHANT: // 600
235-
case JOB_BABY_THIEF: // 601
236-
return inter->msg_txt(595 - JOB_BABY + class);
237-
238-
case JOB_BABY_KNIGHT: // 602
239-
case JOB_BABY_PRIEST: // 603
240-
case JOB_BABY_WIZARD: // 604
241-
case JOB_BABY_BLACKSMITH: // 605
242-
case JOB_BABY_HUNTER: // 606
243-
case JOB_BABY_ASSASSIN: // 607
244-
return inter->msg_txt(602 - JOB_BABY_KNIGHT + class);
245-
246-
case JOB_BABY_KNIGHT2:
247-
return inter->msg_txt(602);
248-
249-
case JOB_BABY_CRUSADER: // 608
250-
case JOB_BABY_MONK: // 609
251-
case JOB_BABY_SAGE: // 610
252-
case JOB_BABY_ROGUE: // 611
253-
case JOB_BABY_ALCHEMIST: // 612
254-
case JOB_BABY_BARD: // 613
255-
case JOB_BABY_DANCER: // 614
256-
return inter->msg_txt(608 - JOB_BABY_CRUSADER + class);
257-
258-
case JOB_BABY_CRUSADER2:
259-
return inter->msg_txt(608);
260-
261-
case JOB_SUPER_BABY:
262-
return inter->msg_txt(615);
263-
264-
case JOB_TAEKWON:
265-
return inter->msg_txt(616);
266-
case JOB_STAR_GLADIATOR:
267-
case JOB_STAR_GLADIATOR2:
268-
return inter->msg_txt(617);
269-
case JOB_SOUL_LINKER:
270-
return inter->msg_txt(618);
271-
272-
case JOB_GANGSI: // 622
273-
case JOB_DEATH_KNIGHT: // 623
274-
case JOB_DARK_COLLECTOR: // 624
275-
return inter->msg_txt(622 - JOB_GANGSI + class);
276-
277-
case JOB_RUNE_KNIGHT: // 625
278-
case JOB_WARLOCK: // 626
279-
case JOB_RANGER: // 627
280-
case JOB_ARCH_BISHOP: // 628
281-
case JOB_MECHANIC: // 629
282-
case JOB_GUILLOTINE_CROSS: // 630
283-
return inter->msg_txt(625 - JOB_RUNE_KNIGHT + class);
284-
285-
case JOB_RUNE_KNIGHT_T: // 656
286-
case JOB_WARLOCK_T: // 657
287-
case JOB_RANGER_T: // 658
288-
case JOB_ARCH_BISHOP_T: // 659
289-
case JOB_MECHANIC_T: // 660
290-
case JOB_GUILLOTINE_CROSS_T: // 661
291-
return inter->msg_txt(656 - JOB_RUNE_KNIGHT_T + class);
292-
293-
case JOB_ROYAL_GUARD: // 631
294-
case JOB_SORCERER: // 632
295-
case JOB_MINSTREL: // 633
296-
case JOB_WANDERER: // 634
297-
case JOB_SURA: // 635
298-
case JOB_GENETIC: // 636
299-
case JOB_SHADOW_CHASER: // 637
300-
return inter->msg_txt(631 - JOB_ROYAL_GUARD + class);
301-
302-
case JOB_ROYAL_GUARD_T: // 662
303-
case JOB_SORCERER_T: // 663
304-
case JOB_MINSTREL_T: // 664
305-
case JOB_WANDERER_T: // 665
306-
case JOB_SURA_T: // 666
307-
case JOB_GENETIC_T: // 667
308-
case JOB_SHADOW_CHASER_T: // 668
309-
return inter->msg_txt(662 - JOB_ROYAL_GUARD_T + class);
310-
311-
case JOB_RUNE_KNIGHT2:
312-
return inter->msg_txt(625);
313-
314-
case JOB_RUNE_KNIGHT_T2:
315-
return inter->msg_txt(656);
316-
317-
case JOB_ROYAL_GUARD2:
318-
return inter->msg_txt(631);
319-
320-
case JOB_ROYAL_GUARD_T2:
321-
return inter->msg_txt(662);
322-
323-
case JOB_RANGER2:
324-
return inter->msg_txt(627);
325-
326-
case JOB_RANGER_T2:
327-
return inter->msg_txt(658);
328-
329-
case JOB_MECHANIC2:
330-
return inter->msg_txt(629);
331-
332-
case JOB_MECHANIC_T2:
333-
return inter->msg_txt(660);
334-
335-
case JOB_BABY_RUNE: // 638
336-
case JOB_BABY_WARLOCK: // 639
337-
case JOB_BABY_RANGER: // 640
338-
case JOB_BABY_BISHOP: // 641
339-
case JOB_BABY_MECHANIC: // 642
340-
case JOB_BABY_CROSS: // 643
341-
case JOB_BABY_GUARD: // 644
342-
case JOB_BABY_SORCERER: // 645
343-
case JOB_BABY_MINSTREL: // 646
344-
case JOB_BABY_WANDERER: // 647
345-
case JOB_BABY_SURA: // 648
346-
case JOB_BABY_GENETIC: // 649
347-
case JOB_BABY_CHASER: // 650
348-
return inter->msg_txt(638 - JOB_BABY_RUNE + class);
349-
350-
case JOB_BABY_RUNE2:
351-
return inter->msg_txt(638);
352-
353-
case JOB_BABY_GUARD2:
354-
return inter->msg_txt(644);
355-
356-
case JOB_BABY_RANGER2:
357-
return inter->msg_txt(640);
358-
359-
case JOB_BABY_MECHANIC2:
360-
return inter->msg_txt(642);
361-
362-
case JOB_SUPER_NOVICE_E: // 651
363-
case JOB_SUPER_BABY_E: // 652
364-
return inter->msg_txt(651 - JOB_SUPER_NOVICE_E + class);
365-
366-
case JOB_KAGEROU: // 653
367-
case JOB_OBORO: // 654
368-
return inter->msg_txt(653 - JOB_KAGEROU + class);
369-
370-
case JOB_REBELLION:
371-
return inter->msg_txt(655);
372-
373-
case JOB_SUMMONER:
374-
return inter->msg_txt(669);
156+
#define JOB_ENUM_VALUE(name, id, msgtbl) case JOB_ ## name: return inter->msg_txt(MSGTBL_ ## msgtbl);
157+
#include "common/class.h"
158+
#include "common/class_hidden.h"
159+
#include "common/class_special.h"
160+
#undef JOB_ENUM_VALUE
375161

376162
default:
377-
return inter->msg_txt(620); // "Unknown Job"
163+
return inter->msg_txt(MSGTBL_UNKNOWN_JOB);
378164
}
379165
}
380166

0 commit comments

Comments
 (0)