Crossfire JXClient, Trunk
SpellPaths.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.spells;
24 
25 import org.jetbrains.annotations.NotNull;
26 
30 public class SpellPaths {
31 
35  private static final int PATH_PROT = 0x00000001;
36 
40  private static final int PATH_FIRE = 0x00000002;
41 
45  private static final int PATH_FROST = 0x00000004;
46 
50  private static final int PATH_ELEC = 0x00000008;
51 
55  private static final int PATH_MISSILE = 0x00000010;
56 
60  private static final int PATH_SELF = 0x00000020;
61 
65  private static final int PATH_SUMMON = 0x00000040;
66 
70  private static final int PATH_ABJURE = 0x00000080;
71 
75  private static final int PATH_RESTORE = 0x00000100;
76 
80  private static final int PATH_DETONATE = 0x00000200;
81 
85  private static final int PATH_MIND = 0x00000400;
86 
90  private static final int PATH_CREATE = 0x00000800;
91 
95  private static final int PATH_TELE = 0x00001000;
96 
100  private static final int PATH_INFO = 0x00002000;
101 
105  private static final int PATH_TRANSMUTE = 0x00004000;
106 
110  private static final int PATH_TRANSFER = 0x00008000;
111 
115  private static final int PATH_TURNING = 0x00010000;
116 
120  private static final int PATH_WOUNDING = 0x00020000;
121 
125  private static final int PATH_DEATH = 0x00040000;
126 
130  private static final int PATH_LIGHT = 0x00080000;
131 
136  private static int warningPaths;
137 
141  private SpellPaths() {
142  }
143 
150  public static void appendSpellPaths(final int path, @NotNull final StringBuilder sb) {
151  int tmp = path;
152  tmp = appendSpellPath(tmp, PATH_PROT, "protection", sb);
153  tmp = appendSpellPath(tmp, PATH_FIRE, "fire", sb);
154  tmp = appendSpellPath(tmp, PATH_FROST, "frost", sb);
155  tmp = appendSpellPath(tmp, PATH_ELEC, "electricity", sb);
156  tmp = appendSpellPath(tmp, PATH_MISSILE, "missile", sb);
157  tmp = appendSpellPath(tmp, PATH_SELF, "self", sb);
158  tmp = appendSpellPath(tmp, PATH_SUMMON, "summoning", sb);
159  tmp = appendSpellPath(tmp, PATH_ABJURE, "abjuration", sb);
160  tmp = appendSpellPath(tmp, PATH_RESTORE, "restoration", sb);
161  tmp = appendSpellPath(tmp, PATH_DETONATE, "detonation", sb);
162  tmp = appendSpellPath(tmp, PATH_MIND, "mind", sb);
163  tmp = appendSpellPath(tmp, PATH_CREATE, "creation", sb);
164  tmp = appendSpellPath(tmp, PATH_TELE, "teleportation", sb);
165  tmp = appendSpellPath(tmp, PATH_INFO, "information", sb);
166  tmp = appendSpellPath(tmp, PATH_TRANSMUTE, "transmutation", sb);
167  tmp = appendSpellPath(tmp, PATH_TRANSFER, "transfer", sb);
168  tmp = appendSpellPath(tmp, PATH_TURNING, "turning", sb);
169  tmp = appendSpellPath(tmp, PATH_WOUNDING, "wounding", sb);
170  tmp = appendSpellPath(tmp, PATH_DEATH, "death", sb);
171  tmp = appendSpellPath(tmp, PATH_LIGHT, "light", sb);
172  tmp &= ~warningPaths;
173  if (tmp != 0) {
174  warningPaths |= tmp;
175  //noinspection UseOfSystemOutOrSystemErr
176  System.err.println("Warning: ignoring unrecognized spell path: 0x"+Integer.toHexString(tmp));
177  }
178  }
179 
188  private static int appendSpellPath(final int paths, final int path, @NotNull final String description, @NotNull final StringBuilder sb) {
189  if ((paths&path) != 0) {
190  sb.append(" ").append(description);
191  }
192  return paths&~path;
193  }
194 
195 }
com.realtime.crossfire.jxclient.spells.SpellPaths
Definition: SpellPaths.java:30
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_LIGHT
static final int PATH_LIGHT
Definition: SpellPaths.java:130
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_WOUNDING
static final int PATH_WOUNDING
Definition: SpellPaths.java:120
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_TELE
static final int PATH_TELE
Definition: SpellPaths.java:95
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_MIND
static final int PATH_MIND
Definition: SpellPaths.java:85
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_SUMMON
static final int PATH_SUMMON
Definition: SpellPaths.java:65
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_DEATH
static final int PATH_DEATH
Definition: SpellPaths.java:125
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_FROST
static final int PATH_FROST
Definition: SpellPaths.java:45
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_CREATE
static final int PATH_CREATE
Definition: SpellPaths.java:90
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_TRANSFER
static final int PATH_TRANSFER
Definition: SpellPaths.java:110
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_ABJURE
static final int PATH_ABJURE
Definition: SpellPaths.java:70
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_MISSILE
static final int PATH_MISSILE
Definition: SpellPaths.java:55
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_INFO
static final int PATH_INFO
Definition: SpellPaths.java:100
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_RESTORE
static final int PATH_RESTORE
Definition: SpellPaths.java:75
com.realtime.crossfire.jxclient.spells.SpellPaths.warningPaths
static int warningPaths
Definition: SpellPaths.java:136
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_DETONATE
static final int PATH_DETONATE
Definition: SpellPaths.java:80
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_TURNING
static final int PATH_TURNING
Definition: SpellPaths.java:115
com.realtime.crossfire.jxclient.spells.SpellPaths.appendSpellPath
static int appendSpellPath(final int paths, final int path, @NotNull final String description, @NotNull final StringBuilder sb)
Definition: SpellPaths.java:188
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_ELEC
static final int PATH_ELEC
Definition: SpellPaths.java:50
com.realtime.crossfire.jxclient.spells.SpellPaths.appendSpellPaths
static void appendSpellPaths(final int path, @NotNull final StringBuilder sb)
Definition: SpellPaths.java:150
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_SELF
static final int PATH_SELF
Definition: SpellPaths.java:60
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_PROT
static final int PATH_PROT
Definition: SpellPaths.java:35
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_TRANSMUTE
static final int PATH_TRANSMUTE
Definition: SpellPaths.java:105
com.realtime.crossfire.jxclient.spells.SpellPaths.PATH_FIRE
static final int PATH_FIRE
Definition: SpellPaths.java:40
com.realtime.crossfire.jxclient.spells.SpellPaths.SpellPaths
SpellPaths()
Definition: SpellPaths.java:141