Problem statement
The weather command family is weather.intensity, weather.next, weather.random - but the direct
setter for weather state is registered as time.weather (ConsoleCommands.cpp:3565). This breaks the
user's mental model: weather setters live under weather.* everywhere except the most important
one. Users hunting for "how do I set the weather" reasonably type weather.set Clear and get
"unknown command". The mismatch is also visible in tab completion: typing weather. does not
surface the setter.
Suggested implementation
Add a parallel registration block right after the weather.random registration at ~line 3607:
m_Registry.Register(
"weather.set",
"<name> - set weather state (alias of time.weather)",
[makeContext](auto args, Console&)
{
CommandContext ctx = makeContext();
(void)Cmd_TimeWeather(args, ctx); // intentional: shared handler
},
{"weather"},
[](std::size_t argIndex) -> std::vector<std::string>
{
// Copy the tab-completion body from time.weather's registration,
// OR factor both into a single named lambda above the registration block.
});
Proposed solution
Add weather.set as a thin alias to Cmd_TimeWeather. Both commands continue to work (no
breaking change). Tab completion for the new alias should provide the same state-name suggestions
that time.weather already provides. The existing tab-completion lambda at
ConsoleCommands.cpp:3574-3583 can be reused.
Alternatives considered
Not applicable - this approach is simple
Scope
Not applicable - the scope is clear
Pre-submission checklist
Problem statement
The weather command family is
weather.intensity,weather.next,weather.random- but the directsetter for weather state is registered as
time.weather(ConsoleCommands.cpp:3565). This breaks theuser's mental model: weather setters live under
weather.*everywhere except the most importantone. Users hunting for "how do I set the weather" reasonably type
weather.set Clearand get"unknown command". The mismatch is also visible in tab completion: typing weather. does not
surface the setter.
Suggested implementation
Add a parallel registration block right after the
weather.randomregistration at~line 3607:Proposed solution
Add weather.set as a thin alias to
Cmd_TimeWeather. Both commands continue to work (nobreaking change). Tab completion for the new alias should provide the same state-name suggestions
that
time.weatheralready provides. The existing tab-completion lambda atConsoleCommands.cpp:3574-3583can be reused.Alternatives considered
Not applicable - this approach is simple
Scope
Not applicable - the scope is clear
Pre-submission checklist