MapInfo.cpp
上传用户:garry_shen
上传日期:2015-04-15
资源大小:45647k
文件大小:3k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "MapInfo.h"
  3. #include "daintyMapClass.h"
  4. #include "..hash.h"
  5. extern char g_tszPathName[256];
  6. extern CList <CBaseMap*,CBaseMap*>maplist;
  7. void LoadMap();
  8. CBaseMap::CBaseMap()
  9. {
  10. bPK = TRUE;
  11. szFamily.Empty();
  12. }
  13. CBaseMap::~CBaseMap()
  14. {
  15. }
  16. CString CBaseMap::AddGoods(CGoods *lpEquip)
  17. {
  18. CGoods *lpMyEquip;
  19. POSITION pos;
  20. BOOL bFind = FALSE;
  21. if ((lpEquip->lpGoods->nKinds == GK_food) ||
  22. (lpEquip->lpGoods->nKinds == GK_drug)) {
  23. pos = listequip.GetHeadPosition();
  24. while (pos!=NULL) {
  25. lpMyEquip = listequip.GetNext(pos);
  26. if (lpMyEquip->lpGoods->szEName == lpEquip->lpGoods->szEName) {
  27. bFind = TRUE;
  28. lpMyEquip->nCount += lpEquip->nCount;
  29. delete lpEquip;
  30. break;
  31. }
  32. }
  33. if (!bFind) listequip.AddTail(lpEquip);
  34. } else {
  35. lpEquip->nCount = 1;
  36. listequip.AddTail(lpEquip);
  37. }
  38. return CString("OK");
  39. }
  40. CString CBaseMap::SetGoods(CGoods *lpEquip)
  41. {
  42. CGoods *lpMyEquip;
  43. POSITION pos;
  44. BOOL bFind = FALSE;
  45. if (lpEquip->lpGoods->nKinds == GK_flag) {
  46. pos = listequip.GetHeadPosition();
  47. while (pos!=NULL) {
  48. lpMyEquip = listequip.GetNext(pos);
  49. if (lpMyEquip->lpGoods->szEName == lpEquip->lpGoods->szEName) {
  50. bFind = TRUE;
  51. lpMyEquip->nCount = lpEquip->nCount;
  52. delete lpEquip;
  53. break;
  54. }
  55. }
  56. if (!bFind) listequip.AddTail(lpEquip);
  57. }
  58. else return CString("Not Flag");
  59. return CString("OK");
  60. }
  61. CString CBaseMap::SubGoods(CString szName)
  62. {
  63. POSITION lastpos, pos;
  64. CGoods * lpGoods;
  65. pos = listequip.GetHeadPosition();
  66. while (pos != NULL) {
  67. lastpos = pos;
  68. lpGoods = listequip.GetNext(pos);
  69. if (lpGoods != NULL) {
  70. if ((lpGoods->lpGoods->szEName == szName) ||
  71. (lpGoods->lpGoods->szCName == szName)) {
  72. lpGoods->nCount--;
  73. if (lpGoods->nCount <= 0) {
  74. listequip.RemoveAt(lastpos);
  75. delete lpGoods;
  76. }
  77. return "OK";
  78. }
  79. }
  80. }
  81. return "⊿Τ硂