go: port item effects — potions, scrolls, options, call_it
- potions.c completed: quaff with all 14 potion effects, the PACT standard-fuse table (do_pot), raise_level; the see-invisible fruit- juice message is computed at quaff time as in C - scrolls.c in full: read_scroll with all 18 scroll effects including the magic-mapping map rewrite and identify dispatch, uncurse - options.c in full: the interactive options screen, get_bool/get_str/ get_inv_t/get_sf editors, ROGUEOPTS parsing (prefix matching, no- prefixed booleans, ~ expansion), strucpy - misc.c call_it via the get_str line editor - turn_see gets a DaemonID (C casts it to a fuse callback for the monster-detection potion) Tests: healing/confusion potions with fuse burn-down, enchant armor, hold monster, slow-monster zap, ROGUEOPTS parsing, and a regression test documenting the C wake_monster ISGREED/ISHELD quirk the port keeps faithfully.
This commit is contained in:
15
game/misc.go
15
game/misc.go
@@ -416,6 +416,21 @@ func (g *RogueGame) getDir() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// callIt calls an object something after use (misc.c call_it).
|
||||
func (g *RogueGame) callIt(info *ObjInfo) {
|
||||
if info.Know {
|
||||
info.Guess = ""
|
||||
} else if info.Guess == "" {
|
||||
g.msg("%s", g.chooseTerse("call it: ", "what do you want to call it? "))
|
||||
buf := ""
|
||||
if g.getStr(&buf, g.scr.Std) == Norm {
|
||||
if buf != "" {
|
||||
info.Guess = buf
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// thingList is misc.c rnd_thing()'s static table.
|
||||
var thingList = []byte{
|
||||
Potion, Scroll, Ring, Stick, Food, Weapon, Armor, Stairs, Gold, Amulet,
|
||||
|
||||
Reference in New Issue
Block a user