Self / ally arts cast on the hero when pointed at an enemy
Arts with launch type 2 (buffs, auras, heals) are only valid on allies or without a target; with an enemy under the cursor the game dropped the order. Orders of a player hero for such arts lose a non-ally target, which casts them on the hero. The launch type comes from the art definition tables (game/engine/arts.h, tools/arttable.mjs). Also: skill keys check the relocated taskbar slots (all 7), Ghidra data labels (g_ names in names.txt). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
dbc632750b
commit
30c93fc87e
9 files changed
+187
-10
No files matched your search
@@ -7,7 +7,8 @@
|
||||
//
|
||||
// names.txt: one "0xADDRESS Name" per line, "Class::Method" puts the function
|
||||
// into a class namespace; "#" starts a comment. Functions are created where
|
||||
// none starts at the address yet.
|
||||
// none starts at the address yet. Names starting with "g_" label data
|
||||
// (globals, tables) instead of functions.
|
||||
// @category sacred_re
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@@ -33,6 +34,7 @@ public class Rename extends GhidraScript {
|
||||
}
|
||||
SymbolTable symbols = currentProgram.getSymbolTable();
|
||||
int renamed = 0;
|
||||
int labelled = 0;
|
||||
for (String raw : Files.readAllLines(Paths.get(args[0]), StandardCharsets.UTF_8)) {
|
||||
String line = raw.replaceAll("#.*", "").trim();
|
||||
if (line.isEmpty()) {
|
||||
@@ -44,6 +46,11 @@ public class Rename extends GhidraScript {
|
||||
continue;
|
||||
}
|
||||
Address address = toAddr(parts[0]);
|
||||
if (parts[1].startsWith("g_")) {
|
||||
createLabel(address, parts[1], true, SourceType.USER_DEFINED);
|
||||
labelled++;
|
||||
continue;
|
||||
}
|
||||
Function function = getFunctionAt(address);
|
||||
if (function == null) {
|
||||
new DisassembleCommand(address, null, true).applyTo(currentProgram, monitor);
|
||||
@@ -69,6 +76,6 @@ public class Rename extends GhidraScript {
|
||||
function.setName(name, SourceType.USER_DEFINED);
|
||||
renamed++;
|
||||
}
|
||||
println("renamed " + renamed + " functions");
|
||||
println("renamed " + renamed + " functions, labelled " + labelled + " data addresses");
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user