From 0d5d1de81b20a263bfc865428979561ecb48cf95 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 26 Jun 2026 19:29:30 -0400 Subject: [PATCH 1/6] Add dog name text field to settings Added a new text field specifier for dog name input. --- Settings.bundle/Root.plist | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Settings.bundle/Root.plist b/Settings.bundle/Root.plist index bf0abbb7..c4d4e5de 100644 --- a/Settings.bundle/Root.plist +++ b/Settings.bundle/Root.plist @@ -180,6 +180,16 @@ asciimono + + Type + PSTextFieldSpecifier + Title + Dog Name + Key + dogname + DefaultValue + + Type PSTextFieldSpecifier From e04ce2768b0ddefa1d4ff6421347fb2719f827f5 Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 26 Jun 2026 19:40:57 -0400 Subject: [PATCH 2/6] Include dog name in Nethack launch options Add dog name option to Nethack launch options if specified. --- Classes/iNethackAppDelegate.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Classes/iNethackAppDelegate.m b/Classes/iNethackAppDelegate.m index 68cf7ca2..52214fa9 100644 --- a/Classes/iNethackAppDelegate.m +++ b/Classes/iNethackAppDelegate.m @@ -39,6 +39,7 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; BOOL startAsBlind = [defaults boolForKey:@"blind"]; BOOL startAsNudist = [defaults boolForKey:@"nudist"]; + NSString *dogName = [defaults stringForKey:@"dogname"]; NSMutableArray *activeOptions = [NSMutableArray array]; if (startAsBlind) { @@ -47,6 +48,10 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application { if (startAsNudist) { [activeOptions addObject:@"nudist"]; } + if (dogName && [dogName length] > 0) { + NSString *dogOption = [NSString stringWithFormat:@"dogname:%@", dogName]; + [activeOptions addObject:dogOption]; + } if ([activeOptions count] > 0) { NSString *optionsString = [activeOptions componentsJoinedByString:@","]; setenv("NETHACKOPTIONS", [optionsString UTF8String], 1); From e95353de506e4230852677c0b07e300c21194f5c Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 26 Jun 2026 20:11:03 -0400 Subject: [PATCH 3/6] Update Root.plist --- Settings.bundle/Root.plist | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Settings.bundle/Root.plist b/Settings.bundle/Root.plist index c4d4e5de..31f2dc44 100644 --- a/Settings.bundle/Root.plist +++ b/Settings.bundle/Root.plist @@ -180,6 +180,16 @@ asciimono + + Type + PSTextFieldSpecifier + Title + Cat Name + Key + catname + DefaultValue + + Type PSTextFieldSpecifier @@ -190,6 +200,16 @@ DefaultValue + + Type + PSTextFieldSpecifier + Title + Horse Name + Key + horsename + DefaultValue + + Type PSTextFieldSpecifier From 9f5477f6e278ffb59afbfc311d936825a443048a Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 26 Jun 2026 20:13:46 -0400 Subject: [PATCH 4/6] Update iNethackAppDelegate.m --- Classes/iNethackAppDelegate.m | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Classes/iNethackAppDelegate.m b/Classes/iNethackAppDelegate.m index 52214fa9..1aa21d45 100644 --- a/Classes/iNethackAppDelegate.m +++ b/Classes/iNethackAppDelegate.m @@ -40,6 +40,8 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application { BOOL startAsBlind = [defaults boolForKey:@"blind"]; BOOL startAsNudist = [defaults boolForKey:@"nudist"]; NSString *dogName = [defaults stringForKey:@"dogname"]; + NSString *catName = [defaults stringForKey:@"catname"]; + NSString *horseName = [defaults stringForKey:@"horsename"]; NSMutableArray *activeOptions = [NSMutableArray array]; if (startAsBlind) { @@ -51,6 +53,14 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application { if (dogName && [dogName length] > 0) { NSString *dogOption = [NSString stringWithFormat:@"dogname:%@", dogName]; [activeOptions addObject:dogOption]; + } + if (catName && [catName length] > 0) { + NSString *catOption = [NSString stringWithFormat:@"catname:%@", catName]; + [activeOptions addObject:catOption]; + } + if (horseName && [horseName length] > 0) { + NSString *horseOption = [NSString stringWithFormat:@"horsename:%@", horseName]; + [activeOptions addObject:horseOption]; } if ([activeOptions count] > 0) { NSString *optionsString = [activeOptions componentsJoinedByString:@","]; From 9cbc02092898eb16c13787238be8192c23660ece Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Fri, 26 Jun 2026 22:45:31 -0400 Subject: [PATCH 5/6] Update Root.plist --- Settings.bundle/Root.plist | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Settings.bundle/Root.plist b/Settings.bundle/Root.plist index 31f2dc44..3a651f0e 100644 --- a/Settings.bundle/Root.plist +++ b/Settings.bundle/Root.plist @@ -180,6 +180,30 @@ asciimono + + DefaultValue + random + Type + PSMultiValueSpecifier + Title + Pet Type + Key + pettype + Titles + + Random + Cat + Dog + None + + Values + + random + cat + dog + none + + Type PSTextFieldSpecifier From a2d8853c062a72bd419056b0c3af1be4b300e00d Mon Sep 17 00:00:00 2001 From: Kevin Nowaczyk Date: Sat, 27 Jun 2026 11:48:13 -0400 Subject: [PATCH 6/6] Include pet type in active options Add pet type option to active options if specified. --- Classes/iNethackAppDelegate.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Classes/iNethackAppDelegate.m b/Classes/iNethackAppDelegate.m index 1aa21d45..d22c4f68 100644 --- a/Classes/iNethackAppDelegate.m +++ b/Classes/iNethackAppDelegate.m @@ -39,6 +39,7 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; BOOL startAsBlind = [defaults boolForKey:@"blind"]; BOOL startAsNudist = [defaults boolForKey:@"nudist"]; + NSString *petType = [defaults stringForKey:@"pettype"]; NSString *dogName = [defaults stringForKey:@"dogname"]; NSString *catName = [defaults stringForKey:@"catname"]; NSString *horseName = [defaults stringForKey:@"horsename"]; @@ -50,6 +51,10 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application { if (startAsNudist) { [activeOptions addObject:@"nudist"]; } + if (petType && [petType length] > 0 && ![petType isEqualToString:@"random"]) { + NSString *petOption = [NSString stringWithFormat:@"pettype:%@", petType]; + [activeOptions addObject:petOption]; + } if (dogName && [dogName length] > 0) { NSString *dogOption = [NSString stringWithFormat:@"dogname:%@", dogName]; [activeOptions addObject:dogOption];