Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - FrodoOf9Fingers

#16
I've been debugging a mod of mine, and while the stack traces in game are nice, I would very much like to be able to diagnose dump files and/or attach a debugger. Both of which require symbol files. I've tried for a awhile to generate symbol files, or interpret dump files without symbol files (yuck), but it'd be really, really cool to get a debug version of the game. Is there any such thing floating around? Would Tynan be willing to distribute such a thing?

I anticipate getting dump files in the future.

And before anyone mentions it, the tool guide for setting up debugging for VS is out of date, the modified mono.dll no longer works with the batch file commands.
#17
Tools / Re: [TOOL] (A15) Mod Full Debugger
March 13, 2018, 07:30:52 PM
I would like an updated mono dll also.
#18
Love your work so far!

Is there a chance to modify the functionality of the "Release Animals" button, such that it doesn't dismount characters (including the one who used the dismount command)?

Also, a quick mount button would be awesome, allowing pawns to mount the closet mountable creature -or- having each pawn mount an animal that they are master over.

Great job!
#19
Outdated / Re: [B18] Amnesia
February 28, 2018, 11:34:22 AM
Every pawn that is every generated is affected. So your starting pawns, pawns that raid or visit, and pawns you encounter in enemy forts.

Prepare carefully only lets you affect your starting pawns.
#20
Outdated / Re: [B18] Amnesia
February 27, 2018, 06:19:45 PM
I'm new to modding steam games. Does anyone have a piece of artwork they'd be willing to share as a picture for the purposes of steam workshop/ingame?

Steam workshop link will be up once I figure out how to upload correctly.
#21
Outdated / [B18] Amnesia
February 27, 2018, 06:18:21 PM
If you're a power gamer like me, you cannot stand to lose one of your carefully crafted pawns, making you constantly save scrum games. Or, you never gain any new pawns because you're never attacked by a pawn with decent stats. Or worse, you're a perfectionist, and all pawns must conform...

Amnesia makes pawns spawn without backstories and/or traits (customizable in settings). Now, trying to find that perfect pawn is super easy, since they're all the same! Any mods that allow pawns to gain backstories or traits will still function as normal, this mod only forces pawns to -start- without any traits, and forces them to have the amnesia backstory (child and adult versions, respectively).

This affects every pawn that is generated, including visitors, raiders, and defenders of your own raids. It is as if the entire world has been hit with widespread amnesia!

Downloads:
Githubhttps://github.com/FrodoOf9Fingers/Amnesia
Steam workshop: coming soon!

The source code is included, free feel to snag anything you want!

Edited with clarifications.
#22
Quote from: UnlimitedHugs on February 22, 2018, 12:51:44 AM
Quote from: FrodoOf9Fingers on February 21, 2018, 11:34:48 PM
Hey, can this be used with a different version of Harmony that is not bundled with HugsLib?

Sure thing. Just include your own version with your mod. The two should not conflict with each other in any way.
Did pardeike release a new update?

Nope, just need more functionality than is currently available.

I'm having some difficulty then. If I try to run a revised Harmony dll in my references and assemblies folder, I get an error along the lines of "classes could not be loaded". However, if I change out Hugslib's version of Harmony with my own, the error goes away. Trying to debug it is hard, as Rimworld isn't very descriptive.
#23
Hey, can this be used with a different version of Harmony that is not bundled with HugsLib?
#24
Unfinished / Re: 9thFinger's ThreadingMod
February 21, 2018, 03:42:06 PM
Quote from: Kiame on February 21, 2018, 12:57:27 AM
i've done some looking at the pathfinding and iirc it assumes single threaded and shares the same pathfinding object/s - don't remember if it was a shared instance or static class off the top of my head, i think it was static though.

It's non static, theres one instance per map.The bypass involves creating multiple instances of the Pathfinder object (a copy actually, to avoid patch looping) in a pool and patching the findPath function of the original pathfinder object to a function that grabs an available copy of pathfinder and running its findPath.

This wouldn't be required if pathfinder didn't store algorithm state data as object members O.o.
#25
Unfinished / Re: 9thFinger's ThreadingMod
February 20, 2018, 06:58:01 PM
To be specific, the queue is the handmade FastPriorityQueue class made by Tynan.
#26
Unfinished / Re: 9thFinger's ThreadingMod
February 20, 2018, 06:55:37 PM
The code Tynan's, and I'm trying to change as little of it as possible (as using reflection/Harmony will slow the program down). In order to debug it, however, I detach his code and replace it with a copy of my own using harmony.

The probable cause is that a thread is coming in after the conditional portion of the if statement and altering the state of the queue. This shouldn't be happening (in most of the cases), as only one thread even has pointers to the said object. Unless somehow multiple threads are trying to use the same pathfinder object (in this case) at the same time, but I review my code controlling how threads get matched up to pathfinder instances and it doesn't seem possible. It happens in a few other cases. The root cause is unknown O.o, but once I find I'll probably say "Oh duh!"

The interesting thing is, if it happens once, it'll happen thousands of times. Otherwise it doesn't happen at all.

In other news...
There's a crash bug inside the code, though I know the fix (mostly). And there's a bug that makes so you have to restart rimworld before you can load a 2nd game.


EDIT: Multiple threads on the pathfinder object wouldn't cause the issue either. Something is just modifying the queue while what I except to run is working.

EDIT EDIT: The answer, in one case, is that I didn't realize that there was a PawnPathPool.
#27
Unfinished / Re: 9thFinger's ThreadingMod
February 20, 2018, 05:22:22 PM
Fix one bug, a million others pop up O.o

Still working, working on a strange bug, something to the effect of:

if (thisQueue.length <= 0)
{
    return;
}
obj = thisQueue.pop();          <---- throws an "Arguement out of bounds" error.

Tis fun :).
#28
Unfinished / Re: 9thFinger's ThreadingMod
February 12, 2018, 04:32:50 PM
I won't have to worry about someone accusing me of copying someone else's code. I won't go into reasons, but this is for a bachelor's degree and I'm on good terms with most of the teaching staff.

I guess you could at things via categories, plants don't need a mutli threaded pathfinding system, for instance. It's more work though and is beyond the requirements I've set. So it'd be a stretch goal. It might be worthwhile later.

I've only got 2 known bugs atm. Once I get them fixed, it may be time for public testing... So if things go well, you guys should be able to play with a (probably, very broken and buggy) version within a week!
#29
Unfinished / Re: 9thFinger's ThreadingMod
February 10, 2018, 03:59:47 PM
Quote from: docssy on January 31, 2018, 11:02:05 PM
Definitely watching. I have an i7 3930k waiting to eat Rimworld alive...

Just a request, B18 please. You'll have less work to bring it to Rimworld's 1.0, then having to migrate from A17 to 1.0. That, and B18 is getting more mods daily, which means modders are learning to update their code to be more efficient and subject to less errors.

Oh, and I should nip this in the bud:

I am making no guarantee whatsoever that the game will run better when multithreaded. Multithreaded can actually make the game slower. While it is typically expected to be the case, sometimes multithreading doesn't work. Again, no guarantee, though I am trying for it. Don't get your expectations too high now :P
#30
Unfinished / Re: 9thFinger's ThreadingMod
February 10, 2018, 03:53:23 PM
Oh, and don't worry, this will release for B18. If B19 comes out during that time, then I'll see how much work it is to update it to that. Already merged my work to work with B18.