anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,864
16,015
Is that at the end scene? If you have less than 11/13 points you cant get the final scene.
So I'll never see it unless I, again, restart from scratch a game I already started one hour ago... greet !
Choosing to cut MC's dick end the game (which is logical) while hesitating led to a reset of everything. Obviously not for everyone, but if it happened to me, it happened to other players... The points lose can be corrected, but the fact that _actions is defined with the sole reset's trigger make the game completely unplayable.

Seriously, why using a so complex mechanism, which lead to bugs half of the time, when anyway 99,99% of the time (I let you the benefit of doubt) a direct manipulation (with the help of __setattr__ if you really want to keep your dynamical approach) would do exactly the same thing, but without the bugs ?
And why this useless after_load process since the Machine objects are saved ? You just create bugs by doing this. Depending of the place you save, you've a correct load or encounter a list index out of range because there's more Machine objects in temp_machines than returned by your get_instances, first boom. And like on top of this you assume that the order will be the same in temp_machine and in the generator returned by get_instances, second boom.
Cherry on the cake, you defined get_instances as class method while using it as a static method, and should have defined it as standalone function:
Code:
def get_instance( cls ):
    for inst_ref in cls.__refs__[cls]:
        inst = inst_ref()
        if inst is not None:
            yield inst
[...]
    python:
        for m in get_instances(M_mc.__class__):
            machines.append(m)
And why designing it as a generator when you only use it in loops which will create a list ? Directly create the list and return it. Or, better, create a dict (str as key, "reference" as value) which will let you ensure that you'll address the right object in your after_load process (if really you need it, which I still doubt about) and prevent the list index error :
Code:
        for m in temp_machines:
            if not str(m) in machines.keys(): continue
            mach = machines[str(m)]
            for state in mach._states:
                [...]
 
Oct 28, 2017
187
215
I am starting to hate the MC so much man. I want him to give in, but we have no control over that, but we have control over other things. It makes me mad. Damn, its making me sexually frustrated watching him be an idiot.
 
  • Like
Reactions: blahblah25

yoyomistro

Engaged Member
Jan 15, 2017
2,932
3,975
So I'll never see it unless I, again, restart from scratch a game I already started one hour ago... greet !
Choosing to cut MC's dick end the game (which is logical) while hesitating led to a reset of everything. Obviously not for everyone, but if it happened to me, it happened to other players... The points lose can be corrected, but the fact that _actions is defined with the sole reset's trigger make the game completely unplayable.

Seriously, why using a so complex mechanism, which lead to bugs half of the time, when anyway 99,99% of the time (I let you the benefit of doubt) a direct manipulation (with the help of __setattr__ if you really want to keep your dynamical approach) would do exactly the same thing, but without the bugs ?
And why this useless after_load process since the Machine objects are saved ? You just create bugs by doing this. Depending of the place you save, you've a correct load or encounter a list index out of range because there's more Machine objects in temp_machines than returned by your get_instances, first boom. And like on top of this you assume that the order will be the same in temp_machine and in the generator returned by get_instances, second boom.
Cherry on the cake, you defined get_instances as class method while using it as a static method, and should have defined it as standalone function:
Code:
def get_instance( cls ):
    for inst_ref in cls.__refs__[cls]:
        inst = inst_ref()
        if inst is not None:
            yield inst
[...]
    python:
        for m in get_instances(M_mc.__class__):
            machines.append(m)
And why designing it as a generator when you only use it in loops which will create a list ? Directly create the list and return it. Or, better, create a dict (str as key, "reference" as value) which will let you ensure that you'll address the right object in your after_load process (if really you need it, which I still doubt about) and prevent the list index error :
Code:
        for m in temp_machines:
            if not str(m) in machines.keys(): continue
            mach = machines[str(m)]
            for state in mach._states:
                [...]
Why not just save at every question? I usually have hundreds of saves for Ren'Py games, so I can go back to whatever point I want. only takes a second to right click then click a save box.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,864
16,015
Why not just save at every question?
Because it's useless, especially since for this game the most important bug happen at load time and, unless you manually verify the variables, you have absolutely no way to know if your play is now corrupted or not. At least until the moment you're rejected by the alternate ending of the update. And still you don't necessarily understand that you have been rejected, since you don't know what to expect from this said alternate ending.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,864
16,015
but as far as the variables not saving, I actually fixed that within a few days but it never got upped to f95,
What variables not saved ? I explicitly said that everything is saved and correctly saved. It's the useless process at load time which mess with the variables, nothing else.

So far as I know, the new saves work and will work so long as I don't change the fsm.
Well, I'll see a last time with the next update, because, "restart from scratch a game I already started one hour ago...", mean that it happened with a save made less than one hour before. This said, I don't have high hope for the said next update.
 

yoyomistro

Engaged Member
Jan 15, 2017
2,932
3,975
Because it's useless, especially since for this game the most important bug happen at load time and, unless you manually verify the variables, you have absolutely no way to know if your play is now corrupted or not. At least until the moment you're rejected by the alternate ending of the update. And still you don't necessarily understand that you have been rejected, since you don't know what to expect from this said alternate ending.
OK. I haven't taken the time to look at the code for this game closely TBH, and I usually play the updates in one sitting so I don't encounter some of the issues people seem to run into on the basis of leaving and coming back to the game. Plus I use rollback a lot too, so my experience doesn't match what most people seem to do.
 

Ignatz

What's the airspeed velocity of an unladen swallow
Donor
Feb 17, 2018
3,579
10,111
How come there is a trash can in picture 2 and not picture 1?
Why is the washing machine not next to the dryer?
Don't most dryer doors open left-to-right and not right-to-left as in the picture?
How come there is a shadow in the second picture and not the first?
Why does the shadow look like there is a light on the floor?

Oh, yeah, the lady is pretty sexy, too.
 
3.50 star(s) 120 Votes