#3196: Desynch on loading truck into cyborg transport when clients are set to
different languages
-------------------+-------------------------------------
 Reporter:  Cyp    |             Owner:
     Type:  bug    |            Status:  new
 Priority:  major  |         Milestone:  3.1
Component:  other  |           Version:  3.1_beta2
 Keywords:         |        Blocked By:
 Blocking:         |  Operating System:  All/Non-Specific
-------------------+-------------------------------------
 Steps to reproduce:
  * Set one client to english, another client to something else.
  * Try to put a truck or tank on a cyborg transport.
  * All clients set to english (not just the player with the transport) get
 a "We can't do that! We must be a Cyborg unit to use a Cyborg Transport!"
 message in the console. (Which is a bit spammy, especially for the players
 that aren't using the cyborg transport.)
  * All clients not set to english see the truck or tank move onto the
 transport, without getting any spammy messages.
  * Desynch. Desynch logs show that english clients get the droid order set
 to DORDER_NONE, and get a actionDroid(psDroid, DACTION_NONE) call.

 Suspected cause:
 order.cpp
 {{{
                         if (!strcmp("Cyborg Transport", temp->aName) &&
 !cyborgDroid(psDroid))
                         {
                                 // NOTE: since we only have one type of
 transport (DROID_TRANSPORT), it isn't worth changing tons of code
                                 // to have two types available
 (DROID_TRANSPORT_SUPER), so we just check the name which can never be
                                 // renamed anyway, so we should be safe
 with this kludge.
                                 psDroid->order = DroidOrder(DORDER_NONE);
                                 actionDroid(psDroid, DACTION_NONE);
                                 audio_PlayTrack( ID_SOUND_BUILD_FAIL );
                                 addConsoleMessage(_("We can't do that! We
 must be a Cyborg unit to use a Cyborg Transport!"), DEFAULT_JUSTIFY,
 selectedPlayer);
                         }
 }}}

 Thoughts:
 Is DROID::aName the same on all clients, or is it locale-dependent?
 Changing »strcmp("Cyborg Transport", temp->aName)« to »strcmp("Cyborg
 Traasdfnsport", temp->aName)« allows adding trucks to cyborg transports.

 Notes:
 Probably not fixed in 3.1_beta4...

-- 
Ticket URL: <http://developer.wz2100.net/ticket/3196>
Warzone 2100 Trac <http://developer.wz2100.net/>
The Warzone 2100 Project
_______________________________________________
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev

Reply via email to