mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
78 lines
2.4 KiB
Markdown
78 lines
2.4 KiB
Markdown
This directory holds the user profiles.
|
|
|
|
To make your own profile, create a new directory here with your username.
|
|
e.g. for username `mark` make a directory called `mark`
|
|
Inside that directory, create `user.gs` and `user.gc` files.
|
|
These are your own user scripts, loaded after the GOOS library and GOAL library respectively.
|
|
|
|
> Alternatively, if you only have a single folder in `goal_src/user/` it will be assumed to be your user folder
|
|
|
|
The rest of the directory can be used however you please!
|
|
|
|
To automatically log in as a specific user, create a `user.txt` file in this directory
|
|
which contains just the username you want to log in as. That way you don't have to
|
|
modify multiple scripts when you want to change users.
|
|
|
|
If you want to make your profile public, edit the .gitignore in this directory.
|
|
|
|
Additionally, you can provide a `repl-config.json` to set various REPL settings, an example configuration:
|
|
```json
|
|
{
|
|
"numConnectToTargetAttempts": 1,
|
|
"jak1": {
|
|
"gameVersionFolder": "jak1_pal", // corresponds with your "gameName" in the decomp config, "jak1" by default
|
|
"asmFileSearchDirs": [
|
|
"goal_src/jak1"
|
|
]
|
|
},
|
|
"jak2": {
|
|
"gameVersionFolder": "jak2_pal", // corresponds with your "gameName" in the decomp config, "jak2" by default
|
|
"asmFileSearchDirs": [
|
|
"goal_src/jak2"
|
|
]
|
|
},
|
|
"appendKeybinds": true,
|
|
"keybinds": [
|
|
{
|
|
"modifier": "ctrl",
|
|
"key": "S",
|
|
"description": "Test Bind",
|
|
"command": "(format 0 \"hello world\")"
|
|
}
|
|
],
|
|
"perGameHistory": false // do not use separate history files for each game version
|
|
}
|
|
```
|
|
|
|
And a `startup.gc` where each line will be executed upon startup
|
|
|
|
## Re-running certain commands upon listening to the target
|
|
|
|
A common workflow that you might want in your `startup.gc` is something like the following:
|
|
|
|
```clj
|
|
(mi)
|
|
(lt)
|
|
(dbgc)
|
|
(test-play)
|
|
```
|
|
|
|
This builds the game, connects to the game, attaches the debugger, and runs it.
|
|
|
|
However, when you crash you ideally want to just be able to:
|
|
- stop the game via `(:stop)` or the respective keybind
|
|
- fix the code, rebuild just that file
|
|
- re-launch the game and re-connect
|
|
|
|
Upon which you'd probably want to run all or some of the above startup again. But how can you accomplish this without re-launching the REPL completely? Like so:
|
|
|
|
```clj
|
|
(mi)
|
|
(lt)
|
|
;; og:run-below-on-listen
|
|
(dbgc)
|
|
(test-play)
|
|
```
|
|
|
|
As the comment suggests, upon a succesful `(lt)` it will run any lines below it again.
|