tchegito / zildo

The Land of Alembrume
GNU Lesser General Public License v3.0
4 stars 1 forks source link

[2.48] NPE on map scroll #143

Closed tchegito closed 6 years ago

tchegito commented 6 years ago
version=v2.48
map=igorlily (64x28)
sprites=[Perso=Zildo
Coords:(1004.0, 194.0 0.0)
info=ZILDO
mvt=VIDE pv=2 weapon=[SWORD,0] name=bousteur lasthit=null]
persos=[Perso=Zildo
Coords:(1004.0, 194.0 0.0)
info=ZILDO
mvt=VIDE pv=2 weapon=[SWORD,0] name=bousteur lasthit=null, Perso=new
Coords:(226.0, 172.0 10.0)
info=ENEMY
mvt=VIDE pv=2, Perso=new
Coords:(425.0, 221.0 10.0)
info=ENEMY
mvt=VIDE pv=2, Perso=new
Coords:(743.0, 408.0 10.0)
info=ENEMY
mvt=VIDE pv=2]
variables={nettleCount=-1, Carlo=[[MOON, 1], 800, 1], allowedDynamite=yes, Dizzie=[[DYNAMITE, 1], 15, 20], moneyStolen=86.0, BilelIgorVillage=[[EMPTY_BAG, 1], 100, 2], [[BLUEDROP, 1], 15, -1], [[DYNAMITE, 1], 100, 2]}
scripts=1 scripts running {[dieInWater[8 on [animation zildo.fwk.script.model.point.PointEvaluator@18bf5245 WATER_SPLASH , sound ZildoPlonge , perso zildo addSpr=-1.0 , wait 10 , visible zildo , wait 40 , herospecial 1 5 , fadeOut 5 , perso zildo addSpr=-1.0 , focus zildo , actions]],}
quests=[flut_ask, flut, chateau_ask, enlevebuissons, enlevebuissons_win, fermierperdu_ask, fermierperdu, fermierperdu_win, gardelaitier, gardelaitier_win, ritou_bar, enlevement, hector_1, start_defi1, stop_defi1, start_visit1, suite_visit1_weapon, maltus_foret, maltus_foret_zildo_defeat, foretg_button_trig, foretg_apres_grotte, bosquet_kill_gards, bosquet_free_way, polaky_greg, zildo_polaky_killguards, zildo_polaky, foret_back, start_visit2, trig_echange, tonneau_polakyg, fuite_tony1, vert_seen, attaque_voleurs, beanCaveFlames, meanwhile_voleurs, voleursm2u(4, 3), voleursm4(13, 3), trig_falcor, beenFishermanVillage, backCoucou, retour_trion, zildoDream, hector_call1, hector_call2, hector_call3, ask_visitprison, igor_promise_sword, prison4_openDoors, prisonext(40, 40), trip_polaky, polaky3(2, 7), bosquetbosquetm2, bosquetm77KEY, bosquetmbosquetm22, polaky4(27, 19), polaky4(31, 19), polakyg3polakyg42, voleursg1(18, 4), voleursm2u(10, 7)]
lastdialog=Lugdunia
�Robert�: Laisse moi me reposer s'il te plait, nous nous verrons plus tard.
�Robert�: Si tu cherches Gérard, mon frère, il est chez lui.
�Robert�: Bonjour bousteur. Comme tu le vois, je suis fourbu par le travail. Ca n'arrête pas en ce moment.
Scierie des frères Lamedur.
�Maltus�: J'espère que les gardes noirs ne viendront pas nous trouver ici.
�Bousteur�: Merci pour ces renseignements. Je vais aller trouver cet inventeur.
�Anselme�: Il est à l'est de la petite forêt des bûcherons.
�Bousteur�: C'est peut-être ce qu'il me faut. Mais où se trouve ce village ?
�Anselme�: Il me semble qu'il y a un inventeur au village des pêcheurs qui a de quoi briser un mur, même très solide.
�Hector�: Malheureusement, tu es le seul à pouvoir rentrer dans la prison sans éveiller l'attention des gardes noirs.
�Bousteur�: Mais comment le faire sortir de là ?
�Anselme�: Ce garçon est très prometteur.
�Hector�: Très bien. Il faudrait le faire sortir de cette prison, dans ce cas.
�Bousteur�: Il y a un forgeron en prison, nommé Igor, qui pourrait améliorer mon épée pour la rendre efficace contre les gardes noirs.
�Hector�: Parle, bousteur, nous t'écoutons attentivement.
�Bousteur�: J'ai peut-être une solution.
�Hector�: Il nous faut à tout prix trouver un moyen de les affronter.
�Hector�: Il est sûrement enfermé là-bas. C'est sans doute un garde noir qui en détient la clé.
�Bousteur�: Malheureusement je n'ai pas trouvé notre bon Roi. Mais il y a une porte fermée à clé où je n'ai pu me rendre.
�Hector�: Ah te voilà bousteur ! Qu'as tu découvert ?
java.lang.NullPointerException: Attempt to invoke virtual method 'zildo.monde.util.Point zildo.monde.map.Area.getNextMapOffset(zildo.monde.map.Area, zildo.monde.util.Angle, boolean)' on a null object reference
    at zildo.server.MapManagement.shiftPreviousMap(MapManagement.java:825)
    at zildo.server.MapManagement.processChangingMap(MapManagement.java:702)
    at zildo.server.EngineZildo.renderEvent(EngineZildo.java:224)
    at zildo.client.stage.SinglePlayer.updateGame(SinglePlayer.java:157)
    at zildo.client.Client.mainLoop(Client.java:194)
    at com.alembrum.OpenGLRenderer.onDrawFrame(OpenGLRenderer.java:107)
    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1583)
    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1286)
tchegito commented 6 years ago

It's nearly the same usecase that #125 when hero is on the water leaf. During the dying scene, engine is trying to provoke map scroll (non sense !) and this lead to a crash because "previousMap" is NULL.

tchegito commented 6 years ago

Fixed in [2.51]

It was once again a bug when hero was on the waterlily, walking as the leaf was against the border. Arriving on the next map, a mapswitch was automatically re-triggered.

d43a8d099df919df8424ec4d21bbc530ab7f68f7