Forums » Bugs

Automatic system notes loading fails if gvector or quaternion is present

Nov 10, 2024 helix397 link
Summary: If a gvector or quaternion value is present in your system notes for a real system, then the notes will fail to automatically load.

Steps to replicate:
- Modify system notes for Sol II (system1notes.txt) to contain a gvector or quaternion value anywhere. Example: "[1]="example note",asdf=gvector(1,2,3)". Also occurs when "gvector(1,2,3)" is replaced by "quaternion(1,2,3,4)".
- Start the game, log in, and enter the universe.
- Go to nav screen. Observe that the note for sector 1 is missing.
- Execute "generalprint(LoadSystemNotes(1))" to see that the file can be accessed.
- Execute "generalprint(spickle(unspickle(LoadSystemNotes(1))))" to see that the notes can be loaded by unspickle().

Effects:
- Only occurs if a plugin or console command adds a gvector or quaternion to a real system's notes. AFAIK this does not occur during normal VO operation without plugins.
- Prevents player from viewing their notes for that system.
- If player modifies that system's notes in any way, then original notes (the ones that failed to load) will be lost/overwritten on disk.

Tested 2024-11-10 at roughly 6:30pm PST (just now).
Windows 10, VO version 1.8.715. Tested with plugins disabled (renamed "plugins" dir to "plugins_").
Nov 11, 2024 incarnate link
Okay, thanks for the heads-up. A few questions..

- Can you tell us more about the use-case? Are you storing asteroid locations or something? Is there a particular plugin you can link to that demonstrates the intended case?

- Have you looked at your errors.log, when this happens? It may say something about the Lua sandbox not having those functions and datatypes being available.
Nov 12, 2024 helix397 link
I don't have a specific requirement/use-case for this - I was messing around trying to find out more about spickle()/unspickle() when I discovered it by accident. I remembered ye olde ticket 6310, which implied that there was some special processing happening during automatic systemnotes loading, and tested it out. That's how I found out that gvector/quaternion isn't loaded in this situation.

errors.log from (boot up / log in / enter universe / quit) from just now, using the gvector example (plugins disabled):

```
Windows 10.00.19045 (platform 2)
Is 64bit OS? Yes
Tue Nov 12 12:37:19 2024
There is 20 percent of memory in use.
There are 33279888 total KB of physical memory.
There are 26535116 free KB of physical memory.
There are 38260624 total KB of paging file.
There are 30882376 free KB of paging file.
There are 2097024 total KB of virtual memory.
There are 2018172 free KB of virtual memory.
There are 0 free KB of extended memory.
loaded ./media.rlb
loaded ./media6.rlb
loaded ./media7.rlb
loaded ./demos.rlb
archive returned 0
build date Oct 17 2024 17:56:24
Initializing job system with 5 threads and 32768 jobs per thread.
ovr_Initialize: -3001
[11/12/24 12:37:20] Found driver: "Windows Sound (WAV) driver". Type 1, Pref 2, Version 10.1. Load @0x10000000
[11/12/24 12:37:20] Instantiate address: 10002540
[11/12/24 12:37:20] Found driver: "DirectX11 GKGL driver". Type 5, Pref 3, Version 150.0. Load @0x04900000
[11/12/24 12:37:20] Instantiate address: 049036D0
[11/12/24 12:37:20] Found driver: "DirectX8.1 GKGL driver". Type 5, Pref 1, Version 142.1. Load @0x04970000
[11/12/24 12:37:20] Instantiate address: 04993890
[11/12/24 12:37:20] Found driver: "DirectX9 GKGL driver". Type 5, Pref 2, Version 150.0. Load @0x04970000
[11/12/24 12:37:20] Instantiate address: 049BA5F0
[11/12/24 12:37:20] Found driver: "Vulkan GKGL driver". Type 5, Pref 2, Version 150.0. Load @0x04b90000
[11/12/24 12:37:20] Instantiate address: 04B99730
[11/12/24 12:37:20] Found driver: "OpenGL Reference GKGL driver". Type 5, Pref 0, Version 150.0. Load @0x05080000
[11/12/24 12:37:20] Instantiate address: 05093A10
[11/12/24 12:37:20] Found driver: "Vista Sound driver". Type 1, Pref 3, Version 10.0. Load @0x05100000
[11/12/24 12:37:20] Instantiate address: 0510235E
[11/12/24 12:37:20] Found driver: "XAudio2 Sound driver". Type 1, Pref 4, Version 10.0. Load @0x05160000
[11/12/24 12:37:20] Instantiate address: 051618CE
Using multithreaded rendering.
Using 6 physics worker threads. and g_do_mp = 1
using other arch.
Haptics Init: true
haptics provider is NOT present.
Chroma failed to init api.
DoGameMPJobs.
starting job system.
Starting game job.
[11/12/24 12:37:24] Creating 2048x2048 shadowmap.
Created 2 refraction targets
Loaded sensitivity envelope for touch regions.
Loaded sensitivity envelope for quest controllers.
Input driver initialized.
HAS_LEAP - calling initLeapMouse
VO_API_VERSION = 19
[11/12/24 12:37:31] Flight-Assist mode disabled.
[11/12/24 12:37:31] Auto-Aim enabled.
[11/12/24 12:37:31] Auto-Fire enabled.
TTS initialized.
Welcome to Vendetta Online.

[11/12/24 12:37:42] Welcome to Vendetta Online.

[11/12/24 12:37:42] Welcome to Vendetta Online.

(messages, location, channel, etc. redacted)

Ending game job.
Waiting for game thread to exit.
game thread was joined.
worker 0: num jobs executed: 0
worker 1: num jobs executed: 1416
worker 2: num jobs executed: 301
worker 3: num jobs executed: 2235
worker 4: num jobs executed: 453
```
Nov 13, 2024 incarnate link
Okay, thanks, we'll take a look.