Opened 10 years ago

Last modified 5 years ago

#377 assigned task

Too many hacks?

Reported by: shanoah@… Owned by: elly
Milestone: Future Keywords: cleanup meta
Cc:

Description (last modified by elly)

The current code, as of revision 543, has no less then 1212 occurrences of the word "hack". Perhaps we should evaluate these, and determine which can be reworked, which are necessary evils, and which aren't really hacks at all?

Here is the breakdown, simply based on how many times the word hack was used. Note that I haven't checked for context, and this is from svn, so some of this code may be hacks simply because it is in flux:
main files:
main-crb.c 35
main-x11.c 21
main-xaw.c 20
main-gtk.c 9
main-sdl.c 4
maid-x11.c 2

Others:
cave.c 54
util.c 53
spells1.c 52
object1.c 48
xtra2.c 47
dungeon.c 45
cmd4.c 43
z-term.c 38
files.c 32
melee2.c 28
variable.c 24
store.c 23
birth.c 19
wizard2.c 18
score.c 16
monster1.c 14
cmd2.c 14
attack.c 14
melee1.c 13
pathfind.c 12
init2.c 8
h-basic.h 4
z-rand.c 2
types.h 2
x-spell.c 1
option.h 1
cmd0.c 1
cmd-obj.c 1
angband.h 1

Change History (3)

comment:1 Changed 8 years ago by magnate

  • Description modified (diff)
  • Keywords cleanup meta added; hack removed

comment:2 Changed 5 years ago by elly

  • Description modified (diff)
  • Owner set to elly
  • Status changed from new to assigned

comment:3 Changed 5 years ago by elly

Fyi, here's the current hack counts:

borg/borg6.c 111
borg/borg5.c 88
borg/borg9.c 80
borg/borg4.c 80
borg/borg7.c 76
borg/borg3.c 71
main-win.c 65
borg/borg2.c 55
borg/borg8.c 42
spells1.c 40
dungeon.c 39
z-term.c 38
util.c 37
monster/mon-make.c 35
borg/borg1.c 33
object/obj-util.c 31
main-crb.c 31
monster/melee2.c 29
spells2.c 27
cave.c 21
borg/borg1.h 19
main-x11.c 17
store.c 16
monster/mon-lore.c 16
wizard.c 14
variable.c 14
ui-options.c 13
load.c 13
generate.c 13
player/calcs.c 12
pathfind.c 12
monster/mon-power.c 12
main-nds.c 12
cmd-context.c 11
target.c 10
object/obj-ui.c 10
cmd4.c 10
cmd2.c 10
ui-knowledge.c 9
score.c 9
files.c 9
cmd3.c 9
main-gcu.c 8
xtra3.c 7
monster/mon-util.c 7
z-form.c 6
player/timed.c 5
object/obj-make.c 5
init2.c 5
defines.h 5
wiz-spoil.c 4
trap.c 4
object/randart.c 4
h-basic.h 4
save.c 3
main-sdl.c 3
cmd-obj.c 3
cmd0.c 3
birth.c 3
attack.c 3
xtra2.c 2
win/win-term.h 2
win/include/zlib.h 2
spells.h 2
player/player.c 2
object/identify.c 2
main.c 2
death.c 2
cmd1.c 2
borg/borg3.h 2
z-rand.c 1
x-spell.c 1
wiz-stats.c 1
ui-birth.c 1
types.h 1
savefile.c 1
player/p-util.c 1
object/tvalsval.h 1
object/obj-info.c 1
object/obj-flag.h 1
nds/ds_win.h 1
nds/ds_gfx.h 1
monster/mon-util.h 1
monster/mon-timed.c 1
monster/mon-msg.c 1
monster/constants.h 1
main-stats.c 1
effects.c 1
borg/borg4.h 1
angband.h 1
z-virt.h 0
z-virt.c 0
z-util.h 0
z-util.c 0
z-type.h 0
z-type.c 0
z-textblock.h 0
z-textblock.c 0
z-term.h 0
z-rand.h 0
z-queue.h 0
z-queue.c 0
z-quark.h 0
z-quark.c 0
z-msg.h 0
z-msg.c 0
z-form.h 0
z-file.h 0
z-file.c 0
z-debug.h 0
z-bitflag.h 0
z-bitflag.c 0
wizard.h 0
win/win-menu.h 0
win/win-layout.c 0
win/scrnshot.c 0
win/readpng.c 0
win/readdib.h 0
win/readdib.c 0
win/include/zconf.h 0
win/include/png.h 0
win/include/pngconf.h 0
win/include/libpng12/png.h 0
win/include/libpng12/pngconf.h 0
ui-spell.c 0
ui-menu.h 0
ui-menu.c 0
ui.h 0
ui-event.h 0
ui-event.c 0
ui.c 0
ui-birth.h 0
trap.h 0
textui.h 0
tests/z-virt/string.c 0
tests/z-virt/mem.c 0
tests/z-textblock/textblock.c 0
tests/z-quark/quark.c 0
tests/unit-test-types.h 0
tests/unit-test.h 0
tests/unit-test-data.h 0
tests/unit-test.c 0
tests/trivial/trivial.c 0
tests/test-utils.h 0
tests/test-utils.c 0
tests/store/store.c 0
tests/player/player.c 0
tests/player/history.c 0
tests/player/birth.c 0
tests/pathfind/pathfind.c 0
tests/parse/z-info.c 0
tests/parse/v-info.c 0
tests/parse/store.c 0
tests/parse/s-info.c 0
tests/parse/r-info.c 0
tests/parse/p-info.c 0
tests/parse/parser.c 0
tests/parse/owner.c 0
tests/parse/names.c 0
tests/parse/k-info.c 0
tests/parse/h-info.c 0
tests/parse/flavor.c 0
tests/parse/f-info.c 0
tests/parse/e-info.c 0
tests/parse/c-info.c 0
tests/parse/a-info.c 0
tests/object/util.c 0
tests/object/attack.c 0
tests/monster/monster.c 0
tests/monster/attack.c 0
tests/command/lookup.c 0
tests/artifact/randname.c 0
target.h 0
tables.c 0
store.h 0
stats/structs.h 0
stats/db.h 0
stats/db.c 0
squelch.h 0
squelch.c 0
snd-sdl.c 0
signals.c 0
savefile.h 0
randname.h 0
randname.c 0
prefs.h 0
prefs.c 0
player/types.h 0
player/spell.c 0
player/race.c 0
player/player.h 0
player/class.c 0
pathfind.h 0
parser.h 0
parser.c 0
osx/osx_tables.h 0
option.h 0
option.c 0
object/slays.h 0
object/slays.c 0
object/pval.h 0
object/pval.c 0
object/obj-power.c 0
object/obj-flag.c 0
object/object.h 0
object/obj-desc.c 0
object/list-slays.h 0
object/list-object-flags.h 0
object/inventory.h 0
object/chest.c 0
nds/ds_main.h 0
nds/ds_kbd.h 0
nds/ds_io.h 0
nds/ds_errfont.h 0
nds/ds_btn.h 0
nds/arm7_main.c 0
monster/mon-timed.h 0
monster/monster.h 0
monster/mon-spell.h 0
monster/mon-spell.c 0
monster/mon-power.h 0
monster/mon-msg.h 0
monster/mon-make.h 0
monster/mon-lore.h 0
monster/mon-init.h 0
monster/mon-init.c 0
monster/melee1.c 0
monster/list-spell-effects.h 0
monster/list-mon-spells.h 0
monster/list-mon-flags.h 0
monster/list-blow-methods.h 0
monster/list-blow-effects.h 0
Makefile.crb 0
main-xxx.c 0
main-test.c 0
main.h 0
list-player-flags.h 0
list-gf-types.h 0
list-effects.h 0
keymap.h 0
keymap.c 0
init.h 0
history.h 0
history.c 0
guid.h 0
guid.c 0
grafmode.h 0
grafmode.c 0
generate.h 0
game-event.h 0
game-event.c 0
game-cmd.h 0
game-cmd.c 0
FunctionLength?.hs 0
FunctionLength?.hi 0
files.h 0
externs.h 0
effects.h 0
dungeon.h 0
doc/doxygen.conf 0
debug.h 0
debug.c 0
death.h 0
config.h 0
cmds.h 0
cmd-misc.c 0
cave.h 0
button.h 0
button.c 0
buildid.h 0
buildid.c 0
borg/borg9.h 0
borg/borg8.h 0
borg/borg7.h 0
borg/borg6.h 0
borg/borg5.h 0
borg/borg2.h 0
birth.h 0
autoconf.h.in 0
autoconf.h 0
attack.h 0

And mega-hacks:

borg/borg4.c 15
borg/borg6.c 12
util.c 9
borg/borg9.c 9
borg/borg5.c 8
spells1.c 3
borg/borg1.c 3
main-win.c 2
dungeon.c 2
borg/borg8.c 2
borg/borg7.c 2
borg/borg3.c 2
object/obj-make.c 1
monster/mon-util.c 1
monster/mon-make.c 1
main-x11.c 1
main-gcu.c 1
generate.c 1
borg/borg2.c 1
borg/borg1.h 1
z-virt.h 0
z-virt.c 0
z-util.h 0
z-util.c 0
z-type.h 0
z-type.c 0
z-textblock.h 0
z-textblock.c 0
z-term.h 0
z-term.c 0
z-rand.h 0
z-rand.c 0
z-queue.h 0
z-queue.c 0
z-quark.h 0
z-quark.c 0
z-msg.h 0
z-msg.c 0
z-form.h 0
z-form.c 0
z-file.h 0
z-file.c 0
z-debug.h 0
z-bitflag.h 0
z-bitflag.c 0
xtra3.c 0
xtra2.c 0
x-spell.c 0
wiz-stats.c 0
wiz-spoil.c 0
wizard.h 0
wizard.c 0
win/win-term.h 0
win/win-menu.h 0
win/win-layout.c 0
win/scrnshot.c 0
win/readpng.c 0
win/readdib.h 0
win/readdib.c 0
win/include/zlib.h 0
win/include/zconf.h 0
win/include/png.h 0
win/include/pngconf.h 0
win/include/libpng12/png.h 0
win/include/libpng12/pngconf.h 0
variable.c 0
ui-spell.c 0
ui-options.c 0
ui-menu.h 0
ui-menu.c 0
ui-knowledge.c 0
ui.h 0
ui-event.h 0
ui-event.c 0
ui.c 0
ui-birth.h 0
ui-birth.c 0
types.h 0
trap.h 0
trap.c 0
textui.h 0
tests/z-virt/string.c 0
tests/z-virt/mem.c 0
tests/z-textblock/textblock.c 0
tests/z-quark/quark.c 0
tests/unit-test-types.h 0
tests/unit-test.h 0
tests/unit-test-data.h 0
tests/unit-test.c 0
tests/trivial/trivial.c 0
tests/test-utils.h 0
tests/test-utils.c 0
tests/store/store.c 0
tests/player/player.c 0
tests/player/history.c 0
tests/player/birth.c 0
tests/pathfind/pathfind.c 0
tests/parse/z-info.c 0
tests/parse/v-info.c 0
tests/parse/store.c 0
tests/parse/s-info.c 0
tests/parse/r-info.c 0
tests/parse/p-info.c 0
tests/parse/parser.c 0
tests/parse/owner.c 0
tests/parse/names.c 0
tests/parse/k-info.c 0
tests/parse/h-info.c 0
tests/parse/flavor.c 0
tests/parse/f-info.c 0
tests/parse/e-info.c 0
tests/parse/c-info.c 0
tests/parse/a-info.c 0
tests/object/util.c 0
tests/object/attack.c 0
tests/monster/monster.c 0
tests/monster/attack.c 0
tests/command/lookup.c 0
tests/artifact/randname.c 0
target.h 0
target.c 0
tables.c 0
store.h 0
store.c 0
stats/structs.h 0
stats/db.h 0
stats/db.c 0
squelch.h 0
squelch.c 0
spells.h 0
spells2.c 0
snd-sdl.c 0
signals.c 0
score.c 0
savefile.h 0
savefile.c 0
save.c 0
randname.h 0
randname.c 0
prefs.h 0
prefs.c 0
player/types.h 0
player/timed.c 0
player/spell.c 0
player/race.c 0
player/p-util.c 0
player/player.h 0
player/player.c 0
player/class.c 0
player/calcs.c 0
pathfind.h 0
pathfind.c 0
parser.h 0
parser.c 0
osx/osx_tables.h 0
option.h 0
option.c 0
object/tvalsval.h 0
object/slays.h 0
object/slays.c 0
object/randart.c 0
object/pval.h 0
object/pval.c 0
object/obj-util.c 0
object/obj-ui.c 0
object/obj-power.c 0
object/obj-info.c 0
object/obj-flag.h 0
object/obj-flag.c 0
object/object.h 0
object/obj-desc.c 0
object/list-slays.h 0
object/list-object-flags.h 0
object/inventory.h 0
object/identify.c 0
object/chest.c 0
nds/ds_win.h 0
nds/ds_main.h 0
nds/ds_kbd.h 0
nds/ds_io.h 0
nds/ds_gfx.h 0
nds/ds_errfont.h 0
nds/ds_btn.h 0
nds/arm7_main.c 0
monster/mon-util.h 0
monster/mon-timed.h 0
monster/mon-timed.c 0
monster/monster.h 0
monster/mon-spell.h 0
monster/mon-spell.c 0
monster/mon-power.h 0
monster/mon-power.c 0
monster/mon-msg.h 0
monster/mon-msg.c 0
monster/mon-make.h 0
monster/mon-lore.h 0
monster/mon-lore.c 0
monster/mon-init.h 0
monster/mon-init.c 0
monster/melee2.c 0
monster/melee1.c 0
monster/list-spell-effects.h 0
monster/list-mon-spells.h 0
monster/list-mon-flags.h 0
monster/list-blow-methods.h 0
monster/list-blow-effects.h 0
monster/constants.h 0
Makefile.crb 0
main-xxx.c 0
main-test.c 0
main-stats.c 0
main-sdl.c 0
main-nds.c 0
main.h 0
main-crb.c 0
main.c 0
load.c 0
list-player-flags.h 0
list-gf-types.h 0
list-effects.h 0
keymap.h 0
keymap.c 0
init.h 0
init2.c 0
history.h 0
history.c 0
h-basic.h 0
guid.h 0
guid.c 0
grafmode.h 0
grafmode.c 0
generate.h 0
game-event.h 0
game-event.c 0
game-cmd.h 0
game-cmd.c 0
FunctionLength?.hs 0
FunctionLength?.hi 0
files.h 0
files.c 0
externs.h 0
effects.h 0
effects.c 0
dungeon.h 0
doc/doxygen.conf 0
defines.h 0
debug.h 0
debug.c 0
death.h 0
death.c 0
config.h 0
cmds.h 0
cmd-obj.c 0
cmd-misc.c 0
cmd-context.c 0
cmd4.c 0
cmd3.c 0
cmd2.c 0
cmd1.c 0
cmd0.c 0
cave.h 0
cave.c 0
button.h 0
button.c 0
buildid.h 0
buildid.c 0
borg/borg9.h 0
borg/borg8.h 0
borg/borg7.h 0
borg/borg6.h 0
borg/borg5.h 0
borg/borg4.h 0
borg/borg3.h 0
borg/borg2.h 0
birth.h 0
birth.c 0
autoconf.h.in 0
autoconf.h 0
attack.h 0
attack.c 0
angband.h 0

Note: See TracTickets for help on using tickets.