From: <js...@us...> - 2011-02-25 00:54:00
|
Revision: 6911 http://exult.svn.sourceforge.net/exult/?rev=6911&view=rev Author: jsf Date: 2011-02-25 00:53:54 +0000 (Fri, 25 Feb 2011) Log Message: ----------- Pickpocket mode, combat fixes. Modified Paths: -------------- ExultAndroid/bin/classes.dex ExultAndroid/src/com/exult/android/Actor.java ExultAndroid/src/com/exult/android/Cheat.java ExultAndroid/src/com/exult/android/CombatSchedule.java ExultAndroid/src/com/exult/android/ExultActivity.java ExultAndroid/src/com/exult/android/GameWindow.java Modified: ExultAndroid/bin/classes.dex =================================================================== (Binary files differ) Modified: ExultAndroid/src/com/exult/android/Actor.java =================================================================== --- ExultAndroid/src/com/exult/android/Actor.java 2011-02-24 21:42:56 UTC (rev 6910) +++ ExultAndroid/src/com/exult/android/Actor.java 2011-02-25 00:53:54 UTC (rev 6911) @@ -1311,7 +1311,8 @@ * If no weapon readied, look through all possessions for the best one. */ public boolean readyBestWeapon() { - //System.out.println("readyBestWeapon for NPC #" + npcNum); + //System.out.println("readyBestWeapon for NPC " + npcNum + + // ":" + getName()); if (getWeapon() != null && readyAmmo()) return true; // Already have one. // Check for spellbook. @@ -1333,7 +1334,9 @@ int ready = info.getReadyType(); //System.out.println("Checking " + obj.getShapeNum() + ", " + // obj.getName() + ", ready = " + ready); - if (ready != Ready.lhand && ready != Ready.both_hands) + // backpack and rhand added for dragon breath and some spells + if (ready != Ready.lhand && ready != Ready.both_hands && + ready != Ready.rhand && ready != Ready.backpack) continue; WeaponInfo winf = info.getWeaponInfo(); //System.out.println("winf = " + (winf == null?"null":"nonnull")); @@ -1343,7 +1346,7 @@ continue; int strength = winf.getBaseStrength(); - //System.out.println("Strength = " + strength); + System.out.println("Strength = " + strength); strength += getEffectiveRange(winf, -1); if (strength > best_strength) { wtype = ready; @@ -1369,7 +1372,10 @@ if (remove2 != null) remove2.removeThis(); best.removeThis(); - add(best, true); // Should go to the right place. + if (wtype == Ready.rhand) // tell it the correct ready spot + addReadied(best, Ready.lhand); + else + add(best, true); // Should go to the right place. if (wtype == Ready.lhand) readyBestShield(); // Also add a shield for 1-handed weapons. if (remove1 != null) // Put back other things. @@ -2595,9 +2601,9 @@ gwin.inCombat(); int sched = getScheduleType(); if (npcNum == 0 || // Avatar - (show_party_inv && partyId >= 0) /* +++++ || // Party + (show_party_inv && partyId >= 0) || // Party // Pickpocket cheat && double click - (cheat.in_pickpocket() && event == 1) */) + (cheat.inPickpocket() && event == 1)) showInventory(); // Asleep (but not awakened)? else if ((sched == Schedule.sleep && @@ -2625,6 +2631,11 @@ alt2 == Ready.scabbard); boolean can_neck = (rtype == Ready.neck || alt1 == Ready.neck || alt2 == Ready.neck); + if (obj.getShapeNum() == 857) { + //+++++JSF-Android - Dragonbreath: Kludge until we read in paperdoll info. + if (spot != Ready.lhand) + return false; + } if (spot == Ready.both_hands) spot = Ready.lhand; else if (spot == Ready.lrgloves) @@ -2666,8 +2677,11 @@ else if (can_neck && spot == Ready.amulet && spots[Ready.cloak] != null) return false; // If in left or right hand allow it - else if (spot == Ready.lhand || spot == Ready.rhand) + else if (spot == Ready.lhand || spot == Ready.rhand) { + if (obj.getShapeNum() == 857) + System.out.println("fitsInSpot " + spot + " successful"); return true; + } // Special Checks for Belt else if (spot == Ready.belt) { @@ -2752,8 +2766,8 @@ boolean combine, boolean noset) { int index = findBestSpot(obj);// Where should it go? if (npcNum == 0) - System.out.println("Adding shape " + obj.getShapeNum() + - ", spot = " + index); + //System.out.println("Adding shape " + obj.getShapeNum() + + // ", spot = " + index); if (index < 0) { // No free spot? Look for a bag. if (spots[Ready.backpack] != null && spots[Ready.backpack].add(obj, false, combine, false)) Modified: ExultAndroid/src/com/exult/android/Cheat.java =================================================================== --- ExultAndroid/src/com/exult/android/Cheat.java 2011-02-24 21:42:56 UTC (rev 6910) +++ ExultAndroid/src/com/exult/android/Cheat.java 2011-02-25 00:53:54 UTC (rev 6911) @@ -5,6 +5,7 @@ private boolean godMode; private boolean wizardMode; private boolean infravision; + private boolean pickpocket; public boolean inHackMover() { return hackMover; @@ -27,6 +28,13 @@ wizardMode = !wizardMode; ExultActivity.showToast(wizardMode?"WizardMode Mode":"Ending WizardMode"); } + public boolean inPickpocket() { + return pickpocket; + } + public void togglePickpocket() { + pickpocket = !pickpocket; + ExultActivity.showToast(pickpocket?"Pickpocket Mode":"Ending Pickpocket"); + } public boolean inInfravision() { return infravision; } Modified: ExultAndroid/src/com/exult/android/CombatSchedule.java =================================================================== --- ExultAndroid/src/com/exult/android/CombatSchedule.java 2011-02-24 21:42:56 UTC (rev 6910) +++ ExultAndroid/src/com/exult/android/CombatSchedule.java 2011-02-25 00:53:54 UTC (rev 6911) @@ -219,7 +219,8 @@ (minf.getFlags() & (1<<MonsterInfo.see_invisible))!=0 : false; for (GameObject each : nearby) { Actor actor = (Actor) each; - if (actor.isDead() || actor.getFlag(GameObject.asleep) || + if (actor.isDead() || + (actor.getFlag(GameObject.asleep) && !opponents.isEmpty()) || (!see_invisible && actor.getFlag(GameObject.invisible))) continue; // Dead, sleeping or invisible. if (isEnemy(npc_align, actor.getEffectiveAlignment())) @@ -577,8 +578,10 @@ WeaponInfo winf = weaponShape >= 0 ? ShapeID.getInfo(weaponShape).getWeaponInfo() : null; int dist = npc.distance(opponent); - //System.out.println("startStrike: npc " + npc.getNpcNum() + - // ":" + npc.getName() + ", dist = " + dist); + if (combatTrace) + System.out.println("startStrike: npc " + npc.getNpcNum() + + ":" + npc.getName() + ", dist = " + dist + + ", weapon = " + weaponShape); int reach; if (winf == null) { MonsterInfo minf = npc.getInfo().getMonsterInfo(); @@ -587,9 +590,10 @@ } else reach = winf.getRange(); boolean ranged = notInMeleeRange(winf, dist, reach); - //System.out.println("startStrike: npc " + npc.getNpcNum() + - // ":" + npc.getName() + ", ranged = " + ranged + - // ", effRange = " + npc.getEffectiveRange(winf, reach)); + if (combatTrace) + System.out.println("startStrike: npc " + npc.getNpcNum() + + ":" + npc.getName() + ", ranged = " + ranged + + ", effRange = " + npc.getEffectiveRange(winf, reach)); // Out of range? if (spellbook == null && npc.getEffectiveRange(winf, reach) < dist) { state = approach; Modified: ExultAndroid/src/com/exult/android/ExultActivity.java =================================================================== --- ExultAndroid/src/com/exult/android/ExultActivity.java 2011-02-24 21:42:56 UTC (rev 6910) +++ ExultAndroid/src/com/exult/android/ExultActivity.java 2011-02-25 00:53:54 UTC (rev 6911) @@ -512,6 +512,12 @@ return true; } else return false; + case KeyEvent.KEYCODE_P: + if (event.isAltPressed()) { + GameSingletons.cheat.togglePickpocket(); + return true; + } else + return false; case KeyEvent.KEYCODE_R: if (event.isAltPressed()) { gwin.read(1); // +++++++TESTING Modified: ExultAndroid/src/com/exult/android/GameWindow.java =================================================================== --- ExultAndroid/src/com/exult/android/GameWindow.java 2011-02-24 21:42:56 UTC (rev 6910) +++ ExultAndroid/src/com/exult/android/GameWindow.java 2011-02-25 00:53:54 UTC (rev 6911) @@ -290,7 +290,7 @@ public void setBody(int npcNum, Actor.DeadBody body) { if (bodies == null) bodies = new Vector<Actor.DeadBody>(npcNum + 1); - else if (npcNum >= bodies.size()) + if (npcNum >= bodies.size()) bodies.setSize(npcNum + 1); bodies.setElementAt(body, npcNum); } @@ -1381,7 +1381,7 @@ // Set palette for time-of-day. clock.reset(); clock.setPalette(); - //+++++FINISH pal.fade(6, 1, -1); // Fade back in. + pal.fade(6, true, -1); // Fade back in. System.out.println("setupGame: done"); } public void readNpcs() throws IOException { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |