• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Solved Fixing the Different Flags Mod

I noticed this section in your complie.log :
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->For character 848 fall Mast name mast2 has index 2
BattleInterface DoSetFlags: 0
procGetRiggingData: n=-2, chr.id=Blaze, ship.type=Interceptor, nation=-1, ShipFlagsQuantity=6, bShipWithoutPennants=0
CurrentFlag=1, ShipFlagsQuantity=6, FlagType=PFlagType==FLAG_PENNANT && n == SHIP_FLAG
BattleInterface DoSetFlags: 1
procGetRiggingData: n=-2, chr.id=CrRedmond1, ship.type=Shnyava2, nation=3, ShipFlagsQuantity=3, bShipWithoutPennants=1
CurrentFlag=1, ShipFlagsQuantity=3, FlagType=E
procGetRiggingData: n=-2, chr.id=CrRedmond1, ship.type=Shnyava2, nation=3, ShipFlagsQuantity=3, bShipWithoutPennants=1
CurrentFlag=2, ShipFlagsQuantity=3, FlagType=E
procGetRiggingData: n=-2, chr.id=CrRedmond1, ship.type=Shnyava2, nation=3, ShipFlagsQuantity=3, bShipWithoutPennants=1
CurrentFlag=3, ShipFlagsQuantity=3, FlagType=E
procGetRiggingData: n=-2, chr.id=CrRedmond1, ship.type=Shnyava2, nation=3, ShipFlagsQuantity=3, bShipWithoutPennants=1<!--c2--></div><!--ec2-->
The game crashes on the shnyava2 but that's strange because normally, as a mast has fallen the refreshflags should be limited only to your ship and the shnyava2 shouldn't refresh her flags after. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
I puted security in procmastfall() function for that :
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void procMastFall()
{
    int chrIdx = GetEventData();
    string mastName = GetEventData();
    int bFirstFall = GetEventData();

    if(chrIdx<0) return;
    int mastNum = strcut(mastName,4,strlen(mastName)-1);

    trace("For character "+chrIdx+" fall Mast name "+mastName+" has index "+mastNum);
    Characters[chrIdx].fallen = 1; //screwface
    Characters[GetMainCharacterIndex()].avoidflagsRe = 1; //screwface
    SendMessage(&PeopleOnShip, "lal", MSG_PEOPLES_ON_SHIP_MASTFALL, GetCharacter(chrIdx), mastNum);
}<!--c2--></div><!--ec2-->
As soon as the avoidflagsre attribute is set, the refreshflags is only limited to your ship, so in your case, it would significate that that mast began to fall (because of the trace) but the attribute was not set yet when the refreshflags began <img src="style_emoticons/<#EMO_DIR#>/ohmy.gif" style="vertical-align:middle" emoid=":eek:" border="0" alt="ohmy.gif" />k
Plus i also noticed that the refreshflags seems to be done 2 times in your compile and it crashes at the second time. Probably, a ship surrendered around a recall the refreshflags at the same time as the mast was falling.

Perhaps by moving the two lines i added upper it could minimize more the risk but i think it will exist ever a risk of crash if the refreshflags is called at the same time of a mast fall event. The challenge is more to limit at most this risk
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void procMastFall()
{
    int chrIdx = GetEventData();
    string mastName = GetEventData();
    int bFirstFall = GetEventData();

    if(chrIdx<0) return;
    Characters[chrIdx].fallen = 1; //screwface
    Characters[GetMainCharacterIndex()].avoidflagsRe = 1; //screwface
    int mastNum = strcut(mastName,4,strlen(mastName)-1);

    trace("For character "+chrIdx+" fall Mast name "+mastName+" has index "+mastNum);
    SendMessage(&PeopleOnShip, "lal", MSG_PEOPLES_ON_SHIP_MASTFALL, GetCharacter(chrIdx), mastNum);
}<!--c2--></div><!--ec2-->
 
<!--quoteo(post=336589:date=Jul 11 2009, 11:47 PM:name=Thomas the Terror)--><div class='quotetop'>QUOTE (Thomas the Terror @ Jul 11 2009, 11:47 PM) <a href="index.php?act=findpost&pid=336589"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->So you need to put in that only if RELATIONS interface is closed, update flag?<!--QuoteEnd--></div><!--QuoteEEnd-->
Or if you hoist a pirate flag, coastal traffic and surrendering ship
 
<!--quoteo(post=336585:date=Jul 11 2009, 03:41 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE (Pieter Boelen @ Jul 11 2009, 03:41 PM) <a href="index.php?act=findpost&pid=336585"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Captain Maggee reports a crash that occurs after closing down the "transfer with officer" interface.
I have been able to confirm this AND discover a really weird effect. Start the Blaze Devlin storyline and use console to give you officers.
Go to sea, then back to port to put ships there. Stand in front of an officer, use [Enter] to open the transfer, then close again.
The game crashes then. Figuring this might have something to do with the delay, I increased the value to 100000 now (= 100 seconds!).
The game works smoothly for those ten seconds, but then crashes anyway when the flag update call is done.
Since there's a 100 second delay, it can't possibly be interfering with another SendMessage call. <img src="style_emoticons/<#EMO_DIR#>/wacko.gif" style="vertical-align:middle" emoid=":wacko:" border="0" alt="wacko.gif" />

In any case, the flags don't even NEED to update upon closing this interface screen.
It'd be nice if the RefreshFlags call was made only if you actually hoised another flag.
Would save a lot of chances for crashes.

Additionally, what if you open an interface, close it, delay starts, but before the delay is done, you open an interface again?<!--QuoteEnd--></div><!--QuoteEEnd-->
The Transfer with officer works like the inventory and actually stays a problem if executed at port. For me the best solution should be to completely avoid the refreshflags in port if exit the inventory interface (and transfert with officer too). The problem is that you can hoist another flag and go to inventory without exiting interface ! What should we do in this case ?
 
What happened with the Redmond fort crash I think is that the game was doing a RefreshFlags because the sea scene had just started,
but then the fort opened fire and maybe a mast fell or ship surrendered straight after, which triggered a second RefreshFlags before the first was well and done.

Could we maybe add an attribute to the player upon a RefreshFlags and remove that attribute after a time delay and then
when RefreshFlags is called again before the attribute is removed, it aborts the RefreshFlags.
Maybe something similar can be done to prevent trouble if you open an inventory screen before the closing RefreshFlags has been called?

I wouldn't suggest updating flags only if you opened the nation relations interface;
I'd limit it to if you really actually pressed a "hoist flag" button.

Other thought: What if you add a RefreshFlags call to your Sea AI periodic updated within an if-statement checking for a player attribute.
Then when something happens to necessitate a flag update, the attribute is added and then only upon the next update is RefreshFlags called.
The attribute will then be removed again to prevent more RefreshFlags than necessary.
This does mean that flag updates are no longer instantaneous, but it might increase stability and decrease unnecessary calls.

Maybe we can also store the hoisted flags upon any location/sea load and then if a second call is made,
first check if anything has changed since the first load. If anything did change, then RefreshFlags, otherwise abort.
This to make sure it's only ever called if it REALLY needs to be called.
 
<!--quoteo(post=336594:date=Jul 11 2009, 11:53 PM:name=Screwface)--><div class='quotetop'>QUOTE (Screwface @ Jul 11 2009, 11:53 PM) <a href="index.php?act=findpost&pid=336594"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->The Transfer with officer works like the inventory and actually stays a problem if executed at port. For me the best solution should be to completely avoid the refreshflags in port if exit the inventory interface (and transfert with officer too). The problem is that you can hoist another flag and go to inventory without exiting interface ! What should we do in this case ?<!--QuoteEnd--></div><!--QuoteEEnd-->
I would think only enable it when at sea? It an option no <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />
 
<!--quoteo(post=336594:date=Jul 11 2009, 03:53 PM:name=Screwface)--><div class='quotetop'>QUOTE (Screwface @ Jul 11 2009, 03:53 PM) <a href="index.php?act=findpost&pid=336594"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->The Transfer with officer works like the inventory and actually stays a problem if executed at port.<!--QuoteEnd--></div><!--QuoteEEnd-->It seems that inventory>RefreshFlags crashes no matter what. But only if there's lots of ships in port and not just the player ship.

<!--quoteo(post=336594:date=Jul 11 2009, 03:53 PM:name=Screwface)--><div class='quotetop'>QUOTE (Screwface @ Jul 11 2009, 03:53 PM) <a href="index.php?act=findpost&pid=336594"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->For me the best solution should be to completely avoid the refreshflags in port if exit the inventory interface (and transfert with officer too). The problem is that you can hoist another flag and go to inventory without exiting interface ! What should we do in this case ?<!--QuoteEnd--></div><!--QuoteEEnd-->What if we just plain disable flag updates ashore at all? It's not really necessary anyway;
as long as it happens upon a location reload or go to sea, it's enough, isn't it? Only at sea could you require updates without reloading.
For example when hoisting a different flag yourself, in which case actually only the player ship + companion flags would need to be updated.
There'd only need to be a flag update on OTHER ships if any ship surrendered, I think.
 
Sounds okay, you don't need your flag to be changed in port anyway <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />.
 
<!--quoteo(post=336599:date=Jul 12 2009, 12:14 AM:name=Thomas the Terror)--><div class='quotetop'>QUOTE (Thomas the Terror @ Jul 12 2009, 12:14 AM) <a href="index.php?act=findpost&pid=336599"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Sounds okay, you don't need your flag to be changed in port anyway <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />.<!--QuoteEnd--></div><!--QuoteEEnd-->
And if they did the officer in charge would be getting a short drop with a sudden stop <img src="style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />

I say disable the change flag on land as well <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />
 
It appears that if you open the inventory screen, something in the scene is changed so that any subsequent RefreshFlags call crashes the game.
Doesn't matter how long the delay.

<!--quoteo(post=336599:date=Jul 11 2009, 04:14 PM:name=Thomas the Terror)--><div class='quotetop'>QUOTE (Thomas the Terror @ Jul 11 2009, 04:14 PM) <a href="index.php?act=findpost&pid=336599"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Sounds okay, you don't need your flag to be changed in port anyway <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />.<!--QuoteEnd--></div><!--QuoteEEnd-->The officer in charge won't even know you WANT the flag changed anyway until you come aboard and tell him. <img src="style_emoticons/<#EMO_DIR#>/razz.gif" style="vertical-align:middle" emoid=":razz" border="0" alt="razz.gif" />
 
This in seadogs.c seems like a good idea:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->        //    RefreshFlags(); // KK
            SetShipFlag(GetMainCharacterIndex()); // Screwface: Just refresh the player flag<!--c2--></div><!--ec2-->It doesn't crash the game and does update the only flag that needs updating.
If you open any inventory screen, the game still doesn't crash, but the flag doesn't update anymore either until the next location reload.
Which doesn't hurt anyway. <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />

Does <i>SetShipFlag(GetMainCharacterIndex());</i> take into account any possible companion ships?
And can it be made to apply on ships other than the main character ship?
Would be nice to update just the flags on a surrendered ship and not ALL flags.
 
Other idea: <i>RefreshFlags()</i> at sea (IF no fallen masts) and <i>SetShipFlag(GetMainCharacterIndex())</i> ashore:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->            if( bSeaActive && !bAbordageStarted )
            {
                LayerFreeze("sea_realize",false);
                LayerFreeze("sea_execute",false);
                If(CheckAttribute(GetMainCharacter(),"avoidflagsRe"))
                {
                    SetShipFlag(GetMainCharacterIndex());
                }
                else
                {
                    RefreshFlags();
                }
            }
            else
            {
                LayerFreeze("realize",false);
                LayerFreeze("execute",false);
                SetShipFlag(GetMainCharacterIndex());
            }<!--c2--></div><!--ec2-->
 
<!--quoteo(post=336603:date=Jul 11 2009, 04:42 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE (Pieter Boelen @ Jul 11 2009, 04:42 PM) <a href="index.php?act=findpost&pid=336603"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Does <i>SetShipFlag(GetMainCharacterIndex());</i> take into account any possible companion ships?<!--QuoteEnd--></div><!--QuoteEEnd-->
No, just player ship !

<!--quoteo(post=336603:date=Jul 11 2009, 04:42 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE (Pieter Boelen @ Jul 11 2009, 04:42 PM) <a href="index.php?act=findpost&pid=336603"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Would be nice to update just the flags on a surrendered ship and not ALL flags.<!--QuoteEnd--></div><!--QuoteEEnd-->
That's what i've done in the last update (Aiship.c) if a mast has fallen around and a ship surrender after :
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void Ship_Surrender(int chridx)
{
    ................................................

    // Screwface : If a mast has fallen, only refresh the flags of the surrending ship to try to avoid some possible conflicts and crashes
    If(CheckAttribute(GetMainCharacter(),"avoidflagsRe"))
    {
        SetShipFlag(chridx);
    }
    else
    {
        RefreshFlags(); // KK
    }<!--c2--></div><!--ec2-->
Perhaps it could be like that even if a mast hasn't fallen !
Good idea to only refresh the player ship in the InterfaceDoExit()
 
Basically, a refreshflags() is called in InitBattleInterface() (for sea) and in StartBattleLandInterface() for the land part. That's the necessary ones which set flags on ships for the first time but as you said, after that, we should only update the flags on ships who need to be updated, but not the others !
 
I tried the following:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->        //    RefreshFlags(); // KK
            SetShipFlag(GetMainCharacterIndex()); // Screwface: Just refresh the player flag
            // PB: Refresh officer flags too -->
            for(int i = 1; i <= 3; i++)
            {
                int iCompanionIndex = GetCompanionIndex(GetMainCharacter(),i);
                if (iCompanionIndex > -1 && i == 1)
                {
                    SetShipFlag(iCompanionIndex);
                    TraceAndLog("Flag updated for companion number " + i);
                    LogIt("Index was: " + iCompanionIndex);
                }
            }
            // PB: Refresh officer flags too <--<!--c2--></div><!--ec2-->
However, this crashes the game because there's four SetShipFlag lines executed right after another without any delay. <img src="style_emoticons/<#EMO_DIR#>/mybad.gif" style="vertical-align:middle" emoid=":facepalm" border="0" alt="mybad.gif" />
 
HA! This does work! <img src="style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" /><!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->        //    RefreshFlags(); // KK
            SetShipFlag(GetMainCharacterIndex()); // Screwface: Just refresh the player flag
            // PB: Refresh companion flags too -->
            for(int i = 1; i <= 3; i++)
            {
                int iCharacterIndex = GetCompanionIndex(GetMainCharacter(),i);
                PostEvent("RefreshCharFlag", i*50, "l", iCharacterIndex);
            }
            // PB: Refresh companion flags too <--<!--c2--></div><!--ec2-->
And in PROGRAM\NK.c:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->#event_handler("RefreshCharFlag", "UpdateCharFlag");
void UpdateCharFlag()
{
    int iCharacterIndex = GetEventData();
    if (iCharacterIndex > -1) SetShipFlag(iCharacterIndex);
}<!--c2--></div><!--ec2-->
This updates player AND companion ship flags.

<b>Edit:</b> This code can go in the "hoist pirate flag" code in BattleInterface too; seems to work fine there. <img src="style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" />
 
But what about double RefreshFlag calls or multiple undelayed SetShipFlag calls?
For example if a ship surrenders right after loading into the sea scene before the RefreshFlags call is even finished?
I think that's what happened on the Redmond fort crash I mentioned before.

Here's some thoughts:
1. Periodic updates based on the presence of a character attribute to coincide with the AI sea updates instead of instant ones
2. Enforce a delay after the first full RefreshFlags call
 
An other solution would be to proceed as the original refreshflags() code but only for player and companions.

In flags.c, under RefreshFlags() function, declare this new function :
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void RefreshMc_n_companionsFlags()
{
    if (FindLoadedLocation() >= 0 && locNumShips > 0) {
        SetEventHandler("frame", "BLI_SetMc_n_companionsFlags", 1);
        return;
    }
    if (bSeaActive && !bAbordageStarted) {
        SetEventHandler("frame", "BI_SetMc_n_companionsFlags", 1);
        return;
    }
}<!--c2--></div><!--ec2-->

So in Battleinterface, under BI_SetFlags() function put :
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->Void BI_SetMc_n_companionsFlags()
{
    int init = 0;
    if (CheckAttribute(&BattleInterface, "DoSetFlags")) init = sti(BattleInterface.DoSetFlags);
    if(init>0)
    {
        int iCompanionIndex = GetCompanionIndex(GetMainCharacter(),init);
        if (iCompanionIndex > -1)
        {
            SetShipFlag(iCompanionIndex);
            Trace("Flag updated for companion number " + init);
        }
    }
    else
    {
        trace("BattleInterface DoSetFlags: "+init);
        SetShipFlag(Ships[init]);
    }
    init++;
    BattleInterface.DoSetFlags = init;
    if (init >= COMPANION_MAX) {
        DeleteAttribute(&BattleInterface, "DoSetFlags");
        DelEventHandler("frame", "BI_SetMc_n_companionsFlags");
    }
}<!--c2--></div><!--ec2-->

In landinterface.c, under BLI_SetFlags() function put :
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->void BLI_SetMc_n_companionsFlags()
{
    int init = 0;
    if (CheckAttribute(&objLandInterface, "DoSetFlags")) init = sti(objLandInterface.DoSetFlags);
    if(init>0)
    {
        int iCompanionIndex = GetCompanionIndex(GetMainCharacter(),init);
        if (iCompanionIndex > -1)
        {
            SetShipFlag(iCompanionIndex);
            Trace("Flag updated for companion number " + init);
        }
    }
    else
    {
        trace("LandInterface DoSetFlags: "+init);
        SetShipFlag(iShips[init]);
    }
    init++;
    objLandInterface.DoSetFlags = init;
    if (init >= COMPANION_MAX) {
        DeleteAttribute(&objLandInterface, "DoSetFlags");
        DelEventHandler("frame", "BLI_SetMc_n_companionsFlags");
    }
}<!--c2--></div><!--ec2-->
So if you replace refreshflags() call by RefreshMc_n_companionsFlags() (in seadogs.c), only the player and companions ships will be refresh and with the one per frame method as in the original mod. I tested it a little with one companion and and it works perfectly. No crash by exiting inventory and if i hoist a new flag, the companion flag is also changed. I won't have much time to test it tomorrow because of family celebration <img src="style_emoticons/<#EMO_DIR#>/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />
 
I've got another modification for my attempt:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->            if(CheckAttribute(GetMainCharacter(),"setcolours")) // PB: Only update flags if needed
            {
                DeleteAttribute(GetMainCharacter(),"setcolours");
                SetShipFlag(GetMainCharacterIndex()); // Screwface: Just refresh the player flag
                // PB: Refresh companion flags too -->
                for(int i = 1; i <= 3; i++)
                {
                    int iCharacterIndex = GetCompanionIndex(GetMainCharacter(),i);
                    PostEvent("RefreshCharFlag", i*50, "l", iCharacterIndex);
                }
                // PB: Refresh companion flags too <--
            }<!--c2--></div><!--ec2-->
Then in PROGRAM\Interface\NationRelation.c in the KAM_SetColours function, add:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->PChar.setcolours = true; // PB: Only update flags if needed<!--c2--></div><!--ec2-->
This ensures that the flags are only ever updated if you actually did hoist another flag.
However, if you open the inventory screen and rais another flag afterwards, no matter how much later, the game will still crash. <img src="style_emoticons/<#EMO_DIR#>/modding.gif" style="vertical-align:middle" emoid=":modding" border="0" alt="modding.gif" />
 
<!--quoteo(post=336641:date=Jul 11 2009, 10:57 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE (Pieter Boelen @ Jul 11 2009, 10:57 PM) <a href="index.php?act=findpost&pid=336641"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->But what about double RefreshFlag calls or multiple undelayed SetShipFlag calls?
For example if a ship surrenders right after loading into the sea scene before the RefreshFlags call is even finished?<!--QuoteEnd--></div><!--QuoteEEnd-->
That sounds quite impossible to me unless you have a 486 DX computer <img src="style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />
Take a look in compile.log you posted previously, i'm sure that the first refreshflags was finished when the second call appeared !

<!--quoteo(post=336641:date=Jul 11 2009, 10:57 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE (Pieter Boelen @ Jul 11 2009, 10:57 PM) <a href="index.php?act=findpost&pid=336641"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Here's some thoughts:
1. Periodic updates based on the presence of a character attribute to coincide with the AI sea updates instead of instant ones<!--QuoteEnd--></div><!--QuoteEEnd-->
Problem because the AI sea updates has toggle and can be turned off <img src="style_emoticons/<#EMO_DIR#>/dunno.gif" style="vertical-align:middle" emoid=":shrug" border="0" alt="dunno.gif" /> Plus if the AI sea update appears at the same time of surrender event, the problem could probably be the same
 
Back
Top