- Mesaj
- 1.045
- Çözümler
- 60
- Beğeni
- 2.674
- Puan
- 1.849
- Ticaret Puanı
- 0
common/item_length.h içindeki enum EItemWearableFlag ın içi 32 yi geçti ve build ederken hata veriyor bu 32 sınırını nasıl arttırırım?
WEAR_MAX_NUM = 64,
WEARABLE_DENEME = (1 << 29),
WEARABLE_DENEME2 = (1 << 30),
WEARABLE_DENEME3 = (1 << 31),
WEARABLE_DENEME4 = ((uint64_t)1 << 32),
WEARABLE_DENEME5 = ((uint64_t)1 << 33),
WEARABLE_DENEME6 = ((uint64_t)1 << 34),
64 yaptım olmuyorlenght.h
WEAR_MAX_NUM = 32,
aynen orası değil sanırım db de mi hata veriyor?64 yaptım olmuyor
game yi build ederken hata veriyor birçok hata veriyor ama bir birinin aynısıaynen orası değil sanırım db de mi hata veriyor?
../../common/item_length.h:375:42: warning: left shift count >= width of type [-Wshift-count-overflow]
375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32),
| ^~
../../common/item_length.h:375:44: error: enumerator value for 'WEARABLE_COSTUME_RING_BEKCILER' is not an integer constant
375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32),
| ^
../../common/item_length.h:375:39: error: right operand of shift expression '(1 << 32)' is >= than the precision of the left operand [-fpermissive]
375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32),
| ~~~^~~~~~
../../common/item_length.h:375:44: error: enumerator value for 'WEARABLE_COSTUME_RING_BEKCILER' is not an integer constant
375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32),
yok olmuyor tam 32 tane var ben 33 yapıp deniyorum olmuyor. Ben EWearPositions dan bahsetmiyorum EItemWearableFlag dan bahsediyorum bunların ikisininde sınırı WEAR_MAX_NUM danmı ayarlanıyor?Ne kadar ekleme yapılacaksa o kadar arttırın
sanırım ben wear ile karıştırıyorum. wearable farklı olabilir. ama src de bunun max değerini göremedim.game yi build ederken hata veriyor birçok hata veriyor ama bir birinin aynısı
item_length.h:../../common/item_length.h:375:42: warning: left shift count >= width of type [-Wshift-count-overflow] 375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32), | ^~ ../../common/item_length.h:375:44: error: enumerator value for 'WEARABLE_COSTUME_RING_BEKCILER' is not an integer constant 375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32), | ^ ../../common/item_length.h:375:39: error: right operand of shift expression '(1 << 32)' is >= than the precision of the left operand [-fpermissive] 375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32), | ~~~^~~~~~ ../../common/item_length.h:375:44: error: enumerator value for 'WEARABLE_COSTUME_RING_BEKCILER' is not an integer constant 375 | WEARABLE_COSTUME_RING_BEKCILER = (1 << 32),
WEAR_MAX_NUM = 64,
WEARABLE_DENEME = (1 << 29),
WEARABLE_DENEME2 = (1 << 30),
WEARABLE_DENEME3 = (1 << 31),
WEARABLE_DENEME4 = ((uint64_t)1 << 32),
WEARABLE_DENEME5 = ((uint64_t)1 << 33),
WEARABLE_DENEME6 = ((uint64_t)1 << 34),
aynen 32 bitlik olduğu için hata veriyor onu 64 e çekmek gerekiyor ama nasıl yapacağımı bulamamıştım .deneyip haber vericemMuhtemelen (1 << 32) ve üstü 32bit taşmasına neden olduğu için kabul etmiyor olabilir.
Denemedim ancak şu şekilde deneyebilirsin:
C++:WEAR_MAX_NUM = 64,
ve sonra:
C++:WEARABLE_DENEME = (1 << 29), WEARABLE_DENEME2 = (1 << 30), WEARABLE_DENEME3 = (1 << 31), WEARABLE_DENEME4 = ((uint64_t)1 << 32), WEARABLE_DENEME5 = ((uint64_t)1 << 33), WEARABLE_DENEME6 = ((uint64_t)1 << 34),
İlk olarak aklıma bu geldi, belki çözümü farklı olabilir emin değilim.
yardımcı olduğun için teşekkürler hata almadan build oldu ama 1 tane uyarı verdi bir şeye sebebiyet olurmu acaba?Muhtemelen (1 << 32) ve üstü 32bit taşmasına neden olduğu için kabul etmiyor olabilir.
Denemedim ancak şu şekilde deneyebilirsin:
C++:WEAR_MAX_NUM = 64,
ve sonra:
C++:WEARABLE_DENEME = (1 << 29), WEARABLE_DENEME2 = (1 << 30), WEARABLE_DENEME3 = (1 << 31), WEARABLE_DENEME4 = ((uint64_t)1 << 32), WEARABLE_DENEME5 = ((uint64_t)1 << 33), WEARABLE_DENEME6 = ((uint64_t)1 << 34),
İlk olarak aklıma bu geldi, belki çözümü farklı olabilir emin değilim.
compile db.cpp
In file included from char_item.cpp:46:
belt_inventory_helper.h: In member function 'bool CHARACTER::IsEmptyItemGrid(TItemPos, BYTE, int) const':
belt_inventory_helper.h:69:24: warning: array subscript [65280, 65295] is outside array bounds of 'CBeltInventoryHelper::TGradeUnit [16]' {aka 'unsigned char [16]'} [-Warray-bounds]
69 | return ruleTable[cell] <= beltGrade;
| ~~~~~~~~~~~~~~^
belt_inventory_helper.h:53:21: note: while referencing 'availableRuleByGrade'
53 | static TGradeUnit availableRuleByGrade[BELT_INVENTORY_SLOT_COUNT] = {
| ^~~~~~~~~~~~~~~~~~~~
compile desc.cpp
Burada da bir dizinin taştığını söylüyor ancak verdiğim düzenlemeyle alakalı olduğunu pek sanmıyorum. Yinede detaylı incelemek lazım.yardımcı olduğun için teşekkürler hata almadan build oldu ama 1 tane uyarı verdi bir şeye sebebiyet olurmu acaba?
game build:compile db.cpp In file included from char_item.cpp:46: belt_inventory_helper.h: In member function 'bool CHARACTER::IsEmptyItemGrid(TItemPos, BYTE, int) const': belt_inventory_helper.h:69:24: warning: array subscript [65280, 65295] is outside array bounds of 'CBeltInventoryHelper::TGradeUnit [16]' {aka 'unsigned char [16]'} [-Warray-bounds] 69 | return ruleTable[cell] <= beltGrade; | ~~~~~~~~~~~~~~^ belt_inventory_helper.h:53:21: note: while referencing 'availableRuleByGrade' 53 | static TGradeUnit availableRuleByGrade[BELT_INVENTORY_SLOT_COUNT] = { | ^~~~~~~~~~~~~~~~~~~~ compile desc.cpp