Page MenuHomeWildfire Games

The server should choose the guid
ClosedPublic

Authored by Imarok on Sep 30 2017, 10:56 PM.

Details

Summary

It is saner to let the server choose the guid.
Therefore it kind of reverts rP19225.
This is also needed as a basis for D897.

Test Plan

Host and join a game

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Imarok created this revision.Sep 30 2017, 10:56 PM
Owners added a subscriber: Restricted Owners Package.Sep 30 2017, 10:56 PM
Vulcan added a subscriber: Vulcan.Sep 30 2017, 11:43 PM

Build is green

Updating workspaces...
Updating bundled third-party dependencies...

FCollada/FCollada.cpp
FCollada/FColladaPlugin.cpp
FCollada/FCDocument/FCDAnimated.cpp
FCollada/FCDocument/FCDAnimationChannel.cpp
FCollada/FCDocument/FCDAnimationClip.cpp
FCollada/FCDocument/FCDAnimationClipTools.cpp
FCollada/FCDocument/FCDAnimation.cpp
FCollada/FCDocument/FCDAnimationCurve.cpp
FCollada/FCDocument/FCDAnimationCurveTools.cpp
FCollada/FCDocument/FCDAnimationKey.cpp
FCollada/FCDocument/FCDAnimationMultiCurve.cpp
FCollada/FCDocument/FCDAsset.cpp
FCollada/FCDocument/FCDCamera.cpp
FCollada/FCDocument/FCDController.cpp
FCollada/FCDocument/FCDControllerInstance.cpp
FCollada/FCDocument/FCDControllerTools.cpp
FCollada/FCDocument/FCDEffectCode.cpp
FCollada/FCDocument/FCDEffect.cpp
FCollada/FCDocument/FCDEffectParameter.cpp
FCollada/FCDocument/FCDEffectParameterFactory.cpp
FCollada/FCDocument/FCDEffectParameterSampler.cpp
FCollada/FCDocument/FCDEffectParameterSurface.cpp
FCollada/FCDocument/FCDEffectPass.cpp
FCollada/FCDocument/FCDEffectPassShader.cpp
FCollada/FCDocument/FCDEffectPassState.cpp
FCollada/FCDocument/FCDEffectProfile.cpp
FCollada/FCDocument/FCDEffectProfileFX.cpp
FCollada/FCDocument/FCDEffectStandard.cpp
FCollada/FCDocument/FCDEffectTechnique.cpp
FCollada/FCDocument/FCDEffectTools.cpp
FCollada/FCDocument/FCDEmitter.cpp
FCollada/FCDocument/FCDEmitterInstance.cpp
FCollada/FCDocument/FCDEmitterObject.cpp
FCollada/FCDocument/FCDEmitterParticle.cpp
FCollada/FCDocument/FCDEntity.cpp
FCollada/FCDocument/FCDEntityInstance.cpp
FCollada/FCDocument/FCDEntityReference.cpp
FCollada/FCDocument/FCDExternalReferenceManager.cpp
FCollada/FCDocument/FCDExtra.cpp
FCollada/FCDocument/FCDForceDeflector.cpp
FCollada/FCDocument/FCDForceDrag.cpp
FCollada/FCDocument/FCDForceField.cpp
FCollada/FCDocument/FCDForceGravity.cpp
FCollada/FCDocument/FCDForcePBomb.cpp
FCollada/FCDocument/FCDForceWind.cpp
FCollada/FCDocument/FCDGeometry.cpp
FCollada/FCDocument/FCDGeometryInstance.cpp
FCollada/FCDocument/FCDGeometryMesh.cpp
FCollada/FCDocument/FCDGeometryNURBSSurface.cpp
FCollada/FCDocument/FCDGeometryPolygons.cpp
FCollada/FCDocument/FCDGeometryPolygonsInput.cpp
FCollada/FCDocument/FCDGeometryPolygonsTools.cpp
FCollada/FCDocument/FCDGeometrySource.cpp
FCollada/FCDocument/FCDGeometrySpline.cpp
FCollada/FCDocument/FCDImage.cpp
FCollada/FCDocument/FCDLibrary.cpp
FCollada/FCDocument/FCDLight.cpp
FCollada/FCDocument/FCDLightTools.cpp
FCollada/FCDocument/FCDMaterial.cpp
FCollada/FCDocument/FCDMaterialInstance.cpp
FCollada/FCDocument/FCDMorphController.cpp
FCollada/FCDocument/FCDObject.cpp
FCollada/FCDocument/FCDObjectWithId.cpp
FCollada/FCDocument/FCDocument.cpp
FCollada/FCDocument/FCDocumentTools.cpp
FCollada/FCDocument/FCDParameterAnimatable.cpp
FCollada/FCDocument/FCDParticleModifier.cpp
FCollada/FCDocument/FCDPhysicsAnalyticalGeometry.cpp
FCollada/FCDocument/FCDPhysicsForceFieldInstance.cpp
FCollada/FCDocument/FCDPhysicsMaterial.cpp
FCollada/FCDocument/FCDPhysicsModel.cpp
FCollada/FCDocument/FCDPhysicsModelInstance.cpp
FCollada/FCDocument/FCDPhysicsRigidBody.cpp
FCollada/FCDocument/FCDPhysicsRigidBodyInstance.cpp
FCollada/FCDocument/FCDPhysicsRigidBodyParameters.cpp
FCollada/FCDocument/FCDPhysicsRigidConstraint.cpp
FCollada/FCDocument/FCDPhysicsRigidConstraintInstance.cpp
FCollada/FCDocument/FCDPhysicsScene.cpp
FCollada/FCDocument/FCDPhysicsShape.cpp
FCollada/FCDocument/FCDPlaceHolder.cpp
FCollada/FCDocument/FCDSceneNode.cpp
FCollada/FCDocument/FCDSceneNodeIterator.cpp
FCollada/FCDocument/FCDSceneNodeTools.cpp
FCollada/FCDocument/FCDSkinController.cpp
FCollada/FCDocument/FCDTargetedEntity.cpp
FCollada/FCDocument/FCDTexture.cpp
FCollada/FCDocument/FCDTransform.cpp
FCollada/FCDocument/FCDVersion.cpp
FCollada/FMath/FMAllocator.cpp
FCollada/FMath/FMAngleAxis.cpp
FCollada/FMath/FMColor.cpp
FCollada/FMath/FMInterpolation.cpp
FCollada/FMath/FMLookAt.cpp
FCollada/FMath/FMMatrix33.cpp
FCollada/FMath/FMMatrix44.cpp
FCollada/FMath/FMQuaternion.cpp
FCollada/FMath/FMRandom.cpp
FCollada/FMath/FMSkew.cpp
FCollada/FMath/FMVector3.cpp
FCollada/FMath/FMVolume.cpp
FCollada/FUtils/FUAssert.cpp
FCollada/FUtils/FUBase64.cpp
FCollada/FUtils/FUBoundingBox.cpp
FCollada/FUtils/FUBoundingSphere.cpp
FCollada/FUtils/FUCrc32.cpp
FCollada/FUtils/FUCriticalSection.cpp
FCollada/FUtils/FUDaeEnum.cpp
FCollada/FUtils/FUDateTime.cpp
FCollada/FUtils/FUDebug.cpp
FCollada/FUtils/FUError.cpp
FCollada/FUtils/FUErrorLog.cpp
FCollada/FUtils/FUFile.cpp
FCollada/FUtils/FUFileManager.cpp
FCollada/FUtils/FULogFile.cpp
FCollada/FUtils/FUObject.cpp
FCollada/FUtils/FUObjectType.cpp
FCollada/FUtils/FUParameter.cpp
FCollada/FUtils/FUParameterizable.cpp
FCollada/FUtils/FUPluginManager.cpp
FCollada/FUtils/FUSemaphore.cpp
FCollada/FUtils/FUStringBuilder.cpp
FCollada/FUtils/FUStringConversion.cpp
FCollada/FUtils/FUSynchronizableObject.cpp
FCollada/FUtils/FUThread.cpp
FCollada/FUtils/FUTracker.cpp
FCollada/FUtils/FUUniqueStringMap.cpp
FCollada/FUtils/FUUri.cpp
FCollada/FUtils/FUXmlDocument.cpp
FCollada/FUtils/FUXmlParser.cpp
FCollada/FUtils/FUXmlWriter.cpp
FColladaPlugins/FArchiveXML/FArchiveXML.cpp
FColladaPlugins/FArchiveXML/FAXAnimationExport.cpp
FColladaPlugins/FArchiveXML/FAXAnimationImport.cpp
FColladaPlugins/FArchiveXML/FAXCameraExport.cpp
FColladaPlugins/FArchiveXML/FAXCameraImport.cpp
FColladaPlugins/FArchiveXML/FAXColladaParser.cpp
FColladaPlugins/FArchiveXML/FAXColladaWriter.cpp
FColladaPlugins/FArchiveXML/FAXControllerExport.cpp
FColladaPlugins/FArchiveXML/FAXControllerImport.cpp
FColladaPlugins/FArchiveXML/FAXEmitterExport.cpp
FColladaPlugins/FArchiveXML/FAXEmitterImport.cpp
FColladaPlugins/FArchiveXML/FAXEntityExport.cpp
FColladaPlugins/FArchiveXML/FAXEntityImport.cpp
FColladaPlugins/FArchiveXML/FAXForceFieldExport.cpp
FColladaPlugins/FArchiveXML/FAXForceFieldImport.cpp
FColladaPlugins/FArchiveXML/FAXGeometryExport.cpp
FColladaPlugins/FArchiveXML/FAXGeometryImport.cpp
FColladaPlugins/FArchiveXML/FAXImportLinking.cpp
FColladaPlugins/FArchiveXML/FAXInstanceExport.cpp
FColladaPlugins/FArchiveXML/FAXInstanceImport.cpp
FColladaPlugins/FArchiveXML/FAXLightExport.cpp
FColladaPlugins/FArchiveXML/FAXLightImport.cpp
FColladaPlugins/FArchiveXML/FAXMaterialExport.cpp
FColladaPlugins/FArchiveXML/FAXMaterialImport.cpp
FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp
FColladaPlugins/FArchiveXML/FAXPhysicsImport.cpp
FColladaPlugins/FArchiveXML/FAXSceneExport.cpp
FColladaPlugins/FArchiveXML/FAXSceneImport.cpp
FCollada/FCollada.cpp
FCollada/FColladaPlugin.cpp
FCollada/FCDocument/FCDAnimated.cpp
FCollada/FCDocument/FCDAnimationChannel.cpp
FCollada/FCDocument/FCDAnimationClip.cpp
FCollada/FCDocument/FCDAnimationClipTools.cpp
FCollada/FCDocument/FCDAnimation.cpp
FCollada/FCDocument/FCDAnimationCurve.cpp
FCollada/FCDocument/FCDAnimationCurveTools.cpp
FCollada/FCDocument/FCDAnimationKey.cpp
FCollada/FCDocument/FCDAnimationMultiCurve.cpp
FCollada/FCDocument/FCDAsset.cpp
FCollada/FCDocument/FCDCamera.cpp
FCollada/FCDocument/FCDController.cpp
FCollada/FCDocument/FCDControllerInstance.cpp
FCollada/FCDocument/FCDControllerTools.cpp
FCollada/FCDocument/FCDEffectCode.cpp
FCollada/FCDocument/FCDEffect.cpp
FCollada/FCDocument/FCDEffectParameter.cpp
FCollada/FCDocument/FCDEffectParameterFactory.cpp
FCollada/FCDocument/FCDEffectParameterSampler.cpp
FCollada/FCDocument/FCDEffectParameterSurface.cpp
FCollada/FCDocument/FCDEffectPass.cpp
FCollada/FCDocument/FCDEffectPassShader.cpp
FCollada/FCDocument/FCDEffectPassState.cpp
FCollada/FCDocument/FCDEffectProfile.cpp
FCollada/FCDocument/FCDEffectProfileFX.cpp
FCollada/FCDocument/FCDEffectStandard.cpp
FCollada/FCDocument/FCDEffectTechnique.cpp
FCollada/FCDocument/FCDEffectTools.cpp
FCollada/FCDocument/FCDEmitter.cpp
FCollada/FCDocument/FCDEmitterInstance.cpp
FCollada/FCDocument/FCDEmitterObject.cpp
FCollada/FCDocument/FCDEmitterParticle.cpp
FCollada/FCDocument/FCDEntity.cpp
FCollada/FCDocument/FCDEntityInstance.cpp
FCollada/FCDocument/FCDEntityReference.cpp
FCollada/FCDocument/FCDExternalReferenceManager.cpp
FCollada/FCDocument/FCDExtra.cpp
FCollada/FCDocument/FCDForceDeflector.cpp
FCollada/FCDocument/FCDForceDrag.cpp
FCollada/FCDocument/FCDForceField.cpp
FCollada/FCDocument/FCDForceGravity.cpp
FCollada/FCDocument/FCDForce

http://jenkins-master:8080/job/phabricator/2090/ for more details.

Executing section Default...
Executing section Source...
Executing section JS...

binaries/data/mods/public/gui/common/network.js
| 174| »   if·(input.indexOf("/")·!=·0)
|    | [NORMAL] JSHintBear:
|    | Use '!==' to compare with '0'.
Executing section XML GUI...
Executing section Python...
Executing section Perl...

http://jenkins-master:8080/job/phabricator_lint/563/ for more details.

elexis accepted this revision.Oct 24 2017, 4:26 PM

Patch is correct (does what is advertized and what is advertized is good) and complete except the welcome message handling.
My testing included connecting with multiple clients in the gamesetup and session and displaying their GUIDs using warn(uneval(g_PlayerAssignments)); in the JS console.
Refer to that ticket in the commit message.
Thanks for the patch!

source/network/NetMessages.h
116 ↗(On Diff #3818)

Keep this or delete DEFAULT_WELCOME_MESSAGE and m_WelcomeMessage too. (Perhaps it was meant as servername or channel topic. But it seems those things would be more maintainable, modifyable and extensible if they were transmitted as a JSON object and parsed in JS instead of C++. So removal seems legit.)

source/network/NetServer.cpp
875 ↗(On Diff #3818)

s/Ensure/Generate?

878 ↗(On Diff #3818)

https://trac.wildfiregames.com/wiki/Coding_Conventions#Formatting
duplicate ps_generate_guid() could possibly be avoided with a do while or for loop, possibly without gain

This revision is now accepted and ready to land.Oct 24 2017, 4:26 PM
Imarok marked 2 inline comments as done.Oct 24 2017, 5:05 PM
Imarok added inline comments.
source/network/NetMessages.h
116 ↗(On Diff #3818)

I already deleted it in D882, because I thought that will be committed earlier.
Though as this diff will be committed first, I should remove the welcome message thingy. Good catch ;)

source/network/NetServer.cpp
875 ↗(On Diff #3818)

I'll move the comment 2 lines down.

This revision was automatically updated to reflect the committed changes.
Imarok marked 2 inline comments as done.